我已经把log4j放到了我的buildpath中,但是当我运行我的应用程序时,我得到了以下消息:
log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
这些警告是什么意思?这里的阑尾是什么?
当Log4J Java代码在程序中搜索以创建第一行日志时,Log4J将显示此警告消息。
此时Log4j做了两件事
它搜索log4j。属性文件
它搜索实例化log4j.properties中定义的appender
如果log4J没有找到log4J。属性文件或在log4j中声明的appender。在log4j的其他地方没有定义Rootlogger。系统弹出“属性”文件中的警告信息。
注意:“属性”文件内容必须正确。
以下内容不正确
log4j.rootLogger=file
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=c:/Trace/MsgStackLogging.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%m%n
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=false
因为文件appender在log4j中是以小写形式声明的。并在log4j中定义。使用大写!
正确的文件应该是
log4j.rootLogger=FILE
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=c:/Trace/MsgStackLogging.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%m%n
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=false
如果使用MAVEN,则必须放置log4j。src/main/resources中的properties文件并启动MAVEN构建。
Log4j。然后将属性文件复制到目标/类文件夹中。
Log4J使用Log4J。属性文件,它发现在目标/类!
首先导入:
import org.apache.log4j.PropertyConfigurator;
然后将以下代码添加到main方法:
String log4jConfPath ="path to/log4j.properties";
PropertyConfigurator.configure(log4jConfPath);
创建一个路径为的文件,并将以下代码添加到该文件中。
log4j.rootLogger=INFO, stdout
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{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n