Java вывод stackTrace в логах - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > Java

Java В данном форуме вы сможете найти много полезной информации по платформе Java. Подробные статьи, исходные коды и конечно учебники как для новичков так и профессиональных Java разработчиков вы найдёте здесь. Если у вас есть вопрос или хотите поделится своими наработками, пожалуйста, делайте это в этой теме.

Ответ
Опции темы
Непрочитано 15.03.2012, 21:40   #1
Аватар для Horus92
Пользователь

Автор темы (Топик Стартер) Java вывод stackTrace в логах

Здравствуйте подскажите как выводить stackTrace исключения в файл.
В данный момент в Windows лог файл создаю так:
Код:
java -Xmx32m -cp mysql-connector-java-5.1.18-bin.jar; ServerSide >> stdout.log
в коде ошибка выводится так
Код:
 catch (SQLException ex) {            
		            System.out.println(ex.toString());
		            ex.printStackTrace();
		        }
System.out.println(ex.toString()); попадает в stdout.log
а ex.printStackTrace(); пишется в консоль а в лог файл не попадает, подскажите пожалуйста как можно вывести стек трейс в файл.
Horus92 вне форума Ответить с цитированием
Непрочитано 15.03.2012, 21:49   #2
Аватар для linliss
Герой

По умолчанию Re: Java вывод stackTrace в логах

ну так напишите простеньку писалку лога в файл
linliss вне форума Ответить с цитированием
Непрочитано 15.03.2012, 22:01   #3
Аватар для VISTALL
Illussion is real

По умолчанию Re: Java вывод stackTrace в логах

StringWriter st = new StringWriter();

ex.printStackTrace(st);

st.toString() - строка с трейсом
__________________
consulo.io - Consulo - multi-language IDE
VISTALL вне форума Ответить с цитированием
Непрочитано 15.03.2012, 22:02   #4
Аватар для n3k0nation
Antihero

По умолчанию Re: Java вывод stackTrace в логах

Используйте дополнительные библиотеки от Apache-сообщества, там все делается буквально в одну-две строчки. Если же их по какой-либо причине невозможно использовать, то записать куда-либо трассировку стека, можно через принт стрим или же принт врайтер. Причем врайтер мы можем обернуть в стринг врайтер, а дальше делать уже, что хотим

А вообще хорошо читать время от времени javadoc стандартной библиотеки.
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Непрочитано 16.03.2012, 13:22   #5
Аватар для ANZO
Разработчик BDO Emu

По умолчанию Re: Java вывод stackTrace в логах

для log4j например:

Конфиг аппендера:

Код:
<appender name="ERROR_APPENDER" class="l2god.log.appenders.TruncateToZipFileAppender">
		<param name="file" value="log/java/errors.log"/>
		<param name="append" value="false"/>
		<param name="backupDir" value="log/backup"/>
		<!-- Windows systems doesn't support : char in file names -->
		<param name="backupDateFormat" value="yyyy-MM-dd HH-mm-ss"/>
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[%p %d{yyyy-MM-dd HH:mm:ss}] %c:%L - %m%n"/>
		</layout>
		<filter class="l2god.log.filters.ThrowablePresentFilter"/>
	</appender>
и собсно сам фильтр
Код:
public class ThrowableAsMessageLogger extends Logger
{

	/**
	 * Creates new instance of this logger
	 *
	 * @param name logger's name
	 */
	protected ThrowableAsMessageLogger(String name)
	{
		super(name);
	}

	/**
	 * This method checks if message is instance of throwbale and throwable is null. If it is so it will move message to
	 * throwable and set Locationalized message of throwable as message of the log record
	 *
	 * @param fqcn	fully qualified class name, it would be used to get the line of call
	 * @param level   level of log record
	 * @param message message of log record
	 * @param t	   throwable, if any present
	 */
	@Override
	protected void forcedLog(String fqcn, Priority level, Object message, Throwable t)
	{

		if (message instanceof Throwable && t == null)
		{
			t = (Throwable) message;
			message = t.getLocalizedMessage();
		}

		super.forcedLog(fqcn, level, message, t);
	}
}
ANZO вне форума Отправить сообщение для ANZO с помощью ICQ Отправить сообщение для ANZO с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 16.03.2012, 14:20   #6
Пользователь

По умолчанию Re: Java вывод stackTrace в логах

А вот так не пробывали?
Код:
java -Xmx32m -cp mysql-connector-java-5.1.18-bin.jar; ServerSide >> stdout.log 2>&1
Blakkky вне форума Ответить с цитированием
Непрочитано 08.04.2012, 20:42   #7
Аватар для Хлорка
Пользователь

По умолчанию Re: Java вывод stackTrace в логах

Цитата:
Сообщение от ASevenfold Посмотреть сообщение
Используйте дополнительные библиотеки от Apache-сообщества, там все делается буквально в одну-две строчки.
Да чувак, ну ты и сказанул, сразу ясно с апачем ты не работал.
Хлорка вне форума Отправить сообщение для Хлорка с помощью ICQ Ответить с цитированием
Непрочитано 08.04.2012, 21:49   #8
Пользователь

По умолчанию Re: Java вывод stackTrace в логах

Цитата:
Сообщение от Хлорка Посмотреть сообщение
Да чувак, ну ты и сказанул, сразу ясно с апачем ты не работал.
по сравнению с JUL (jdk 1.4 java.util.logging) commons-logging просто шедевр.

P.S. Пользуюсь slf4j + logback / log4j :]
__________________
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Aquanox вне форума Ответить с цитированием
Непрочитано 09.04.2012, 01:16   #9
Аватар для n3k0nation
Antihero

По умолчанию Re: Java вывод stackTrace в логах

Цитата:
Сообщение от Хлорка Посмотреть сообщение
Да чувак, ну ты и сказанул, сразу ясно с апачем ты не работал.
2Хлорка:
Свернуть ↑Развернуть ↓


Цитата:
Сообщение от Aquanox Посмотреть сообщение
по сравнению с JUL (jdk 1.4 java.util.logging) commons-logging просто шедевр.

P.S. Пользуюсь slf4j + logback / log4j :]
Я говорил в данном случае, про commons-lang библиотеку
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Непрочитано 09.04.2012, 11:49   #10
Пользователь

По умолчанию Re: Java вывод stackTrace в логах

Цитата:
Сообщение от ASevenfold Посмотреть сообщение
Я говорил в данном случае, про commons-lang библиотеку
Забыл за нее, редко пользуюсь.

Раз stacktrace для вывода используется то лучше всетаки использовать логгер.
__________________
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Aquanox вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Корявый вывод PrivetDruK Программирование / Programming 1 16.01.2012 13:22
Вывод из файла. Effas Программирование / Programming 0 13.12.2011 17:20
Вывод ошибок flashboom777 PHP 3 15.04.2011 14:41
вывод даты русскими APKO PHP 0 01.04.2011 16:02
[JAVA] Вывод из mysql Дух системы Работа со скриптами 5 08.09.2010 21:54


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 13:30. Часовой пояс GMT +3.

Вверх