簡體   English   中英

使用tomcat的log4j不會記錄在MVN測試中記錄的內容

[英]log4j with tomcat does not log what is logged in mvn test

我有一個Web應用程序。 當我運行“ mvn test”時,它會將調試消息記錄到控制台,如我所配置的那樣。 但是,當我將其部署到tomcat時,看不到應用程序的日志。 我絕對確定我在戰爭中的正確位置獲得了log4j.properties文件,就像我在根目錄的已部署的/var/lib/tomcat7/webapps/worldmodel/WEB-INF/classes/log4j.properties中更改值時一樣記錄器或休眠模式,並觸摸web.xml,我看到/找到了休眠的調試日志。 但是我無法使用任何嘗試的配置來記錄應用程序的調試消息。 這是我進行日志記錄的方法:

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

logger = Logger.getLogger(BaseObject.class);
log(Level.DEBUG,"message");

這是用於測試的log4j.properties:

log4j.rootLogger=INFO, CONSOLE

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding=UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.SYSLOG = org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.syslogHost = 127.0.0.1
log4j.appender.SYSLOG.layout = org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.SYSLOG.Facility = LOCAL0

log4j.logger.org.rulez.magwas.worldmodel=DEBUG
#log4j.logger.org.hibernate.SQL=debug 
#log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=trace
#log4j.logger.org.hibernate.type=trace 

這是已部署的log4j.properties:

log4j.rootLogger=INFO, SYSLOG

log4j.appender.SYSLOG = org.apache.log4j.net.SyslogAppender
log4j.appender.SYSLOG.syslogHost = 127.0.0.1
log4j.appender.SYSLOG.layout = org.apache.log4j.PatternLayout
log4j.appender.SYSLOG.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
log4j.appender.SYSLOG.Facility = LOCAL0

log4j.logger.org.rulez.magwas.worldmodel=DEBUG
#log4j.logger.org.hibernate.SQL=debug 
#log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=trace
#log4j.logger.org.hibernate.type=trace 

我在MVN測試中得到這樣的行:

2013-05-21 07:12:17,751 [main] DEBUG org.rulez.magwas.worldmodel.BaseObject- setValue0e9é 072r 074t 0e9é 06bk

整個項目: https : //github.com/magwas/worldmodel/commit/c6b08da0a733d9b61257c669e0cc4af9e59444be

編輯:

好的,算了吧,代碼(bean中的getter和setter方法)似乎沒有被調用,也許休眠直接設置/獲取值?

由於您是用INFO級別配置ROOT記錄器,因此不會顯示任何DEBUG級別的消息。

log4j.rootLogger=INFO, SYSLOG

上面的rootLogger應該配置為DEBUG,以在日志中查看調試和其他更高級別(致命,錯誤,警告和信息)。

log4j.rootLogger=DEBUG, SYSLOG

我不確定您的Maven測試案例配置是什么,但是您共享的log4j.properties可能在那里沒有任何作用。

編輯 :從您的編輯看來,您的登錄生產配置錯誤。 如果您的日志記錄設置為INFO,則不應記錄DEBUG消息。 我的意思是,這完全違反了擁有日志級別的目的,清楚地表明Log4j的配置不正確,並且浪費了Prod資源的空間和時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM