2015-09-01 3 views
2

У меня есть мои log4j.properties файл, как показано ниже:предупреждение log4j на консоли

log4j.rootLogger=WARN, DebugAppender 

#Debug logging 
log4j.appender.DebugAppender=org.apache.log4j.RollingFileAppender 
log4j.appender.DebugAppender.Threshold=WARN 
log4j.appender.DebugAppender.File=activityLog.log 
log4j.appender.DebugAppender.MaxFileSize=200KB 
log4j.appender.DebugAppender.MaxBackupIndex=5 
log4j.appender.DebugAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.DebugAppender.layout.ConversionPattern=%d{DATE} %t - %m%n 

Файл будет добавлен в путь к классам и в папке SRC/ресурсы .... мой проект является проектом Maven, и я Я использую технологию springshell так, что мое приложение работает в командной строке ... все работает отлично, но когда я выполнить определенную команду в моем приложении это дает мне предупреждение ниже:

log4j:WARN No appenders could be found for logger (com.gedas.rvs.data.net.ClientAuthenticationType). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

Можете ли вы помочь мне о том, что я Я делаю неправильно?

ответ

0

Похоже, для этого требуется файл appender. снова проверьте файлы свойств журнала. Вот мой файл свойств журнала, посмотрите.

# Root logger option 
log4j.rootLogger=DEBUG, file 

# Redirect log messages to console 
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
#log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

# Redirect log messages to a log file, support file rolling. 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.File=C:\\log4j-application.log 
log4j.appender.file.MaxFileSize=5MB 
log4j.appender.file.MaxBackupIndex=10 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 

log4j.logger.org.hibernate.hql=debug 
log4j.logger.org.hibernate.type=trace 

Вместо того чтобы только отлаживать приложение, добавьте другие строки и попробуйте. Это может сработать!

+0

все еще не повезло :( – shardul

1

Вы определяете приложение (вы объясняете log4j, где и как писать сообщения), но вы не определяете, какие категории («имя», предоставленное регистраторам в вашей программе) должны использовать его.

Это говорит log4j, что все категории (rootLogger) следует использовать DebugAppender писать сообщения тяжести DEBUG или выше,

# Root logger option 
log4j.rootLogger=DEBUG, DebugAppender 

В качестве альтернативы, если у вас есть регистратор под названием example.org.MyClass, вы можете добавить

log4j.example.org.MyClass=INFO, DebugAppender 

или

log4j.example.org=INFO, DebugAppender 

для отправки INFO и выше сообщений в приложение.

+0

На самом деле в моем приложении используются разные команды ... приложение работает нормально для всех команд, кроме одного .... когда я выполняю эту конкретную команду, он выдает указанное предупреждение msg в командной строке ..... так что немного странно анализировать для меня, почему только выполнение типичной команды воспроизводит этот msg .... хотя команда успешно выполняется после предоставления этого сообщения – shardul

+0

Поскольку эта команда является единственной, которая пытается записать в log4j logger (даже из вашего кода или из какого-либо стороннего API, который вы используете). – SJuan76

+0

ОК это может быть сторонний API, но интересная вещь здесь, я получаю сообщение только в первый раз, когда я выполняю команду. команда сразу после этого, предупреждение msg не приходит. – shardul

Смежные вопросы