天天看点

java——log4j生成日志文件

1.配置文件生成日志文件。

properties配置:

log4j.rootLogger = debug,stdout,file


### 输出到控制台 ###
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{ABSOLUTE} %5p %c{1}:%L - %m%n


### 输出到日志文件 ###
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
###设置DatePattern,当天日志保存到log.log文件,前一天的日志文件名将被修改为log.log + _yyyy-MM-dd.log
log4j.appender.file.File =D/logs/log.log
log4j.appender.file.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.file.Append = true
## 输出DEBUG级别以上的日志
log4j.appender.file.Threshold = DEBUG
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
           

2.java代码生成日志文件。

public class LoggerTool{  
    private static Logger logger;
    private static String filepath;
    public LoggerTool(String path){      //path:日志保存路径  
    	filepath=path;
         new File(filepath).mkdir();  //创建文件夹
    }  
    public static void infoMsg(String filename,String msg){       //filename:生成日志的文件名  msg:日志信息
    	logger  =  Logger.getLogger("_"+filename);  
    	DailyRollingFileAppender appender=new DailyRollingFileAppender();  
        appender.setFile(filepath+"/"+filename+".log");  
        appender.setDatePattern("'.'yyyy-MM-dd");  
        PatternLayout layout=new PatternLayout("%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS}%c %m%n");  
        appender.setLayout(layout);  
        appender.setAppend(true);
        appender.activateOptions();
        logger.addAppender(appender);  
        logger.setAdditivity(false);  
        logger.setLevel((Level)Level.INFO);
        logger.info(msg);
        appender.close();
    }
     public Logger getLogger() {  
        return logger;  
    } 
     public static void main(String[] args){  
         new LoggerTool("D:\\test\\vcmslog");
         LoggerTool.infoMsg("aaa","啊哈哈哈哈哈哈哈");
         LoggerTool.infoMsg("wang","啦啦啦啦啦阿拉拉了");
     }  
}