配置文件
### 设置级别和目的地(这里多个目的地) ###
log4j.rootLogger = DEBUG,CONSOLE,D
### 这里的me是包,也就是在这个包记录日志时,是只记录debug及以上级别的日志
log4j.logger.test=DEBUG
### 输出到控制台 ###
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target = System.out
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n
### 保存异常信息到单独文件 ###
#
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
## 异常日志文件名
log4j.appender.D.File = logs/error.log
log4j.appender.D.Append = true
## 只输出ERROR级别以上的日志!!!
log4j.appender.D.Threshold = ERROR
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#每天两次生成一个文件
log4j.appender.D.DatePattern = '.'yyyy-MM-dd-a
#yyyy-MM-dd-HH-mm #每分钟
导包
log4j-1.2.15.jar
示例代码
package pocket.total.util;
import org.apache.log4j.Logger;
public class Log4jUtil {
static Logger logger = Logger.getLogger(Log4jUtil.class);
/*
* ReqReady报错记录
*/
public static void readyError(String req, Player p1, Player p2){
/*** 获取输出信息的代码的位置 ***/
String location = "";
StackTraceElement[] stacks = Thread.currentThread().getStackTrace();
location = stacks[2].getClassName() + "." + stacks[2].getMethodName()
+ "(" + stacks[2].getLineNumber() + ")";
logger.error(location +" : " +req);
logger.error(p1.toString());
logger.error(p2.toString());
}