废话不多说,直接上代码。
log4j.properties配置如下
log4j.rootLogger = info,out1,out2
log4j.appender.out1=org.apache.log4j.FileAppender
log4j.appender.out1.File=test.log
log4j.appender.out1.layout=org.apache.log4j.PatternLayout
log4j.appender.out1.layout.ConversionPattern=%d %-5p - %m at %l%n
log4j.appender.out2=org.apache.log4j.ConsoleAppender
log4j.appender.out2.layout=org.apache.log4j.PatternLayout
log4j.appender.out2.layout.ConversionPattern=%d %-5p - %m at %l%n
问题一:这个test.log文件会存放在哪呢?
经测试发现,test.log这个相对路径相对的是user.dir系统参数的值。
假如我的tomcat的安装路径为D:\apache-tomcat-6.0.16,则user.dir=D:\apache-tomcat-6.0.16\bin,当不确定时,我们可以用System.getProperties()将所有的系统参数在jsp中打印出来。
问题二:
如果我们将test.log改为绝对路径/test.log,这个test.log文件又会存放在哪呢?
经测试发现,/test.log这个绝对路径的根路径是user.dir系统参数的根路径,即test.log会存放在D:\test.log。
补充:
我们在log4j.properties文件中还可以通过${系统参数}的方式来指明日志文件存放路径。
如log4j.appender.out1.File=${user.dir}/logs/test.log