log4j 没有按照设置configuration来记录日志信息 郁闷! 谁来解决。。。。
为何这个程序没有按照("%-d{MM-dd HH:mm:ss} [%c]-[%p] %m%n")格式来输出日志信息呢?
另外,网上找了半天,还是不知道如何配日志配置文件,比如root R代表啥咚咚,在帮助文档也没说吧,请高手指教
程序是这样的:
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Category;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.PropertyConfigurator;
public class logTest {
static Logger logger = Logger.getLogger(logTest.class.getName());
public static void main(String args[]) {
PatternLayout layout = new PatternLayout();
layout.setConversionPattern("%-d{MM-dd HH:mm:ss} [%c]-[%p] %m%n");
FileAppender appender = null;
try {
appender = new FileAppender(layout, "output1.log", true);
//PropertyConfigurator.configure("log4j.properties");
}
catch (Exception e) {}
logger.addAppender(appender);
logger.setLevel( (Level) Level.INFO);
logger.debug("Here is some 11DEBUG");
logger.info("Here is some 711 INFO");
logger.warn("Here is some 15451WARN");
logger.error("Here is some 44511ERROR");
logger.fatal("Here is some 1451FATAL");
}
}
若是用配置文件(程序中注释了)是这样的:
# Set root logger level to ERROR and its only appender to A1.
log4j.rootLogger=INFO,R
# R is set to be a DailyRollingFileAppender.
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=backup.log
log4j.appender.R.DatePattern = '.'yyyy-MM-dd
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
可是输出日志是这样的:
Here is some 711 INFO
Here is some 15451WARN
Here is some 44511ERROR
Here is some 1451FATAL
没有时间等信息的显示,为何?
问题点数:100、回复次数:5Top
1 楼smilefox(笑面狐)回复于 2005-08-03 11:18:47 得分 0
配置文件只有根记录器,少了你自己的logTest记录器啊。缺省就用根的rootLogger
加一个记录器,如与rootLogger同样的设置,则覆盖
log4j.logger.logTest= INFO, RTop
2 楼laughsmile(海边的星空)回复于 2005-08-03 16:48:21 得分 0
我的log4j.xml配置,可以记录时间:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c[%M] - %m (%F:%L)%n"/>
</layout>
</appender>
<appender name="log" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/Tokubai.log" />
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c[%M] - %m (%F:%L)%n"/>
</layout>
</appender>
<logger name="cn">
<level value="error" />
<appender-ref ref="log" />
</logger>
</log4j:configuration> Top
3 楼mxlmwl(飞星)回复于 2005-08-04 12:03:26 得分 0
log4j.rootLogger=DEBUG,A1,R1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j.appender.R1=org.apache.log4j.RollingFileAppender
log4j.appender.R1.File=${runpath}/logs/convert.log
log4j.appender.R1.layout=org.apache.log4j.PatternLayout
log4j.appender.R1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
log4j.appender.R1.MaxFileSize=5MB
log4j.appender.R1.MaxBackupIndex=50
这个是我的一个配置文件,比较简单,你要的实际上就是
log4j.appender.R1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
你可以到竹笋炒肉上去找找,有个介绍log4j的文章不错。或者用google搜搜,都这么经典的东东了,能搜出一大堆来。Top
4 楼EANFS(我的爱是折下自己的翅膀 送给你飞翔)回复于 2005-08-05 11:19:30 得分 0
R 是 appender 的名称,可以自己取的Top
5 楼EANFS(我的爱是折下自己的翅膀 送给你飞翔)回复于 2005-08-05 11:20:07 得分 0
我的代码
PatternLayout layout = new PatternLayout();
FileAppender appender = null;
try {
fileName = fileName + "_"+ DateUtil.getNowTimeString()+".log";
layout.setConversionPattern("%d{yyyy/MM/dd HH:mm:ss} - %m%n");
appender = new FileAppender(layout,fileName,false);
} catch (Exception e) {
System.out.println(e.getMessage());
}
log.addAppender(appender);
log.setLevel((Level) Level.INFO);Top




