log4j日志文件路径问题

本文介绍了如何在Java Servlet项目中使用log4j将日志记录到WEB-INF/logs目录下,避免了绝对路径移植时的问题。通过配置log4j.properties文件和web.xml,实现了按日志级别分别写入logRecord.log和logRecorderror.log。文中提到了日志级别设置的原理,并记录了解决问题的过程。
摘要由CSDN通过智能技术生成

做了一个最简单的servlet项目,只有一个servlet,然后想在servlet把日志记录到项目下的logs文件夹中的logRecord.log和logRecorderror.log。

然而路径问题弄了我一天,找了很多资料,绝对路径是可以解决,但是如果移植的话,那么绝对路径改起来会很麻烦。所以最好用相对路径。


但是网上的相关资料都无法解决我的问题,后来一不做二不休,瞎弄,发现路径直接写logs/logRecord.log竟然成功的把日志写入进去了。


好了,话不多说   直接上代码。


1.首先我们把

commons-logging-1.1.3.jar
log4j-1.2.17.jar

导入到项目中。


2.配置log4j.properties

### set log levels ###
log4j.rootLogger = INFO, stdout, D, E
#log4j.rootLogger = INFO, stdout
#log.path = /mylog

### 输出到控制台 ###
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{yyyy/MM/dd-HH:mm:ss} [%-5p] [%c] [%F] - %m %n

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/logRecord.log
log4j.appender.D.DatePattern='.'yyyy-MM-dd
log4j.appender.D.Threshold = INFO
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %d{yyyy/MM/dd-HH:mm:ss} [%-5p] [%c] [%F] - %m %n
log4j.appender.D.layout.Encoding=UTF-8

### 保存异常信息到单独文件 ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
##异常日志文件
log4j.appender.E.File = logs/logRecorderror.log
log4j.appender.E.Append = true
##只输出ERROR级别以上的日志
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %d{yyyy/MM/dd-HH:mm:ss} [%-5p] [%c] [%F] - %m %n
log4j.appender.E.DatePattern='.'yyyy-MM-dd
log4j.appender.E.Encoding=UTF-8



这个是servlet,里面的main方法是来把日志写入文件中。

package com.pingpay.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class PingPayLogServlet extends HttpServlet {

	// 在任何需要记录日志的类中

	Log log = LogFactory.getLog(this.getClass());

	/**
	 * 记录ping++返回的数据
	 * 
	 */
	public void
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值