Log4j печатает трассировку стека ошибок на локальном, но не на сервере

У меня есть приложение Java, работающее на экземпляре Amazon EC2. И я использую Apache log4j для поддержки ERROR так же как DEBUG журналы для моего приложения.

Но в последнее время я не могу записать трассировку стека ошибок, используя logger.error(String Message, Throwable t),

Я попытался войти, как это,

final Logger logger = LoggerFactory.getLogger(MyClass.class);

StringWriter sWriter = new StringWriter();
e.printStackTrace(new PrintWriter(sWriter));
logger.error("Exception occured while fetching count from DB", sWriter);

Но .log файл отображает только сообщение Exception occurred while fetching count from DB

мой log4j.properties файл выглядит так

# Root logger
log4j.rootLogger=INFO, RollingAppender

# LOG4J daily rolling log files configuration
log4j.rootLogger=${loggingType}, RollingAppender
log4j.appender.RollingAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RollingAppender.File=${logFile}
log4j.appender.RollingAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.RollingAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.RollingAppender.layout.ConversionPattern=%d [%p] %c %M - %m%n

Если я запускаю приложение локально, я вижу трассировку стека печати, но это не работает на моем экземпляре Amazon EC2.

log4j версия 1.7.2

Версия JDK 1.7.0_151

Любая помощь приветствуется. Благодарю вас.

1 ответ

Решение

Попробуйте использовать

final Logger logger = LoggerFactory.getLogger(getClass()); 

вместо

final Logger logger = LoggerFactory.getLogger(MyClass.class);

Первый позволяет использовать имя фактического класса во всех классах по всей иерархии наследования.

Другие вопросы по тегам