java log4j 代码中 新增按日保存日志文件的功能

    /**
     * log4j.logger.oaReceviceBudgetApproveStatusTaskServiceLog=info, stdout, oaReceviceBudgetApproveStatusTaskService
     * log4j.additivity.oaReceviceBudgetApproveStatusTaskServiceLog = true
     * log4j.appender.oaReceviceBudgetApproveStatusTaskService= org.apache.log4j.DailyRollingFileAppender
     * log4j.appender.oaReceviceBudgetApproveStatusTaskService.File=../BytterLogs/oaReceviceBudgetApproveStatusTaskService.log
     * log4j.appender.oaReceviceBudgetApproveStatusTaskService.DataPattern='.'yyyy-MM-dd
     * log4j.appender.oaReceviceBudgetApproveStatusTaskService.Append=true
     * log4j.appender.oaReceviceBudgetApproveStatusTaskService.Threshold=INFO
     * log4j.appender.oaReceviceBudgetApproveStatusTaskService.layout=org.apache.log4j.PatternLayout
     * log4j.appender.oaReceviceBudgetApproveStatusTaskService.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SS} [%t] %-5p [%c] - %m%n
     */

    public static Logger log = Logger.getLogger("oaReceviceBudgetApproveStatusTaskServiceLog");
    static {
        //日志级别
        log.setLevel(Level.INFO);
        //是否在父日志中输出日志
        log.setAdditivity(true);
        // 清空Appender。必须,不然会随着执行次数重复打印日志信息
        log.removeAllAppenders();
        FileAppender appender = new DailyRollingFileAppender();
        //设置日志输出路径
        appender.setFile("../BytterLogs/oaReceviceBudgetApproveStatusTaskService/oaReceviceBudgetApproveStatusTaskService.log");
        //设置编码格式
        appender.setEncoding("UTF-8");
        appender.setAppend(true);
        PatternLayout patternLayout = new PatternLayout();
        //设置每天生产日志文件
        patternLayout.setConversionPattern("%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c - %F(%L) | %m%n");
        appender.setLayout(patternLayout);
        //这句启动配置记得加,不加会报 ERROR No output stream or file set for the appender 的错误,源码中在这方法里将文件名转为对应的输出流
        appender.activateOptions();
        log.addAppender(appender);
    }

 

posted @ 2025-09-22 18:03  _万古如长夜  阅读(6)  评论(0)    收藏  举报