/*** 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);}