天天看點

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","啦啦啦啦啦阿拉拉了");
     }  
}