Показать сообщение отдельно
Непрочитано 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™ Ответить с цитированием
Сказали спасибо: