web项目中Log4j不输出到文件问题

log4j.properties文件放在classpath文件夹下(即web项目的WEB-INF/classes文件夹下,这样可以保证log4j能够自动识别配置文件,而不用显式的配置)内容如下:

log4j.rootLogger=warn, stdout,file

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] %c{1}:%L - %m%n


### direct messages to file file.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyyMMdd
log4j.appender.file.File=../logs.log
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

问题描述:在控制台程序下可以输出到控制台和logs.log文件当中,但是在web项目当中做的log输出只能输出到控制台,而无法输出到logs.log文件当中。

控制台程序如下:

public class TestLogger {

	public static Log log = LogFactory.getLog(TestLogger.class);

	public static void main(String[] args) {
		log.error("怎么回事?");
	}

	@Test
	public void test() {
		log.error("怎么回事?");
	}
}

以上程序可以输出到控制台和logs.log文件当中。但是如下程序:

public class TestLogs extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static Log log = LogFactory.getLog(TestLogs.class);

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public TestLogs() {
		// TODO Auto-generated constructor stub
	}

	@Override
	public void init() throws ServletException {
		log.error("怎么回事?");
	}
}

输出只能输出到控制台,而无法输出到logs.log文件当中。

问题出在
log4j.appender.file.File=../logs.log

这个配置之上。应更改为:

log4j.appender.file.File=d:/logs.log

即要指定绝对路径而不能指定相对路径!问题解决!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值