最近有需求做日志记录:需要每天分类记录日志,对于研究出现的问题予以记录一下;
这是我的配置
第一个问题是linux路径问题
开始想用环境变量作为路径但由于各种问题最终没有成功,改为直接写路径,然而又没有生成文件,把文件改为777权限,最终才成功生成文件。
第二个问题是只有money文件 没有格式化成日期格式 经查原来是当天时候是记录在money里的 在第二天才会生成前一天日期格式的日志文件(money是测试)
所以可以将配置文件改成分钟测试:
1)'.'yyyy-MM: 每月
2)'.'yyyy-ww: 每周
3)'.'yyyy-MM-dd: 每天
4)'.'yyyy-MM-dd-a: 每天两次
5)'.'yyyy-MM-dd-HH: 每小时
6)'.'yyyy-MM-dd-HH-mm: 每分钟
第三个问题输出一个error级别的日志,几个日志文件全部输出了
经过查询 原来是Logger.getLogger("RECHARGE") 这个的问题
他的API解释是查找或创建一个logger(如果没有此名称的就重新创建一个)而我想当然的认为
这样的配置就可以了,其实是错误的
在网上查找到的
最终配置文件代码
log4j.rootLogger=DEBUG,CONSOLE,FILEOUT
log4j.addivity.org.apache=true
# CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
#log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} \:%m%n #
# FILEOUT
log4j.appender.FILEOUT=org.apache.log4j.RollingFileAppender
log4j.appender.FILEOUT.File=c://mylogs/logfile.log
log4j.appender.fileout.MaxFileSize=100000KB
# default is true\uFF0Cappend to the file; if false, the replace the log file whenever restart system
log4j.appender.FILEOUT.Append=true
#RollingFileAppender
log4j.appender.FILEOUT.layout=org.apache.log4j.PatternLayout
#log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
log4j.appender.FILEOUT.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH:mm:ss} :%m%n
# RECHARGE
log4j.logger.RECHARGE = ERROR,RECHARGE
log4j.appender.RECHARGE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.RECHARGE.DatePattern='-'yyyy-MM-dd'.log'
log4j.appender.RECHARGE.File=/usr/local/log/recharge/recharge
log4j.appender.RECHARGE.Append=true
log4j.appender.RECHARGE.Threshold=ERROR
log4j.appender.RECHARGE.layout=org.apache.log4j.PatternLayout
log4j.appender.RECHARGE.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH:mm:ss} :%c %m%n
log4j.appender.RECHARGE.encoding=UTF-8
# CONSUME
log4j.logger.CONSUME = ERROR,CONSUME
log4j.appender.CONSUME=org.apache.log4j.DailyRollingFileAppender
log4j.appender.CONSUME.DatePattern='-'yyyy-MM-dd'.log'
log4j.appender.CONSUME.File=/usr/local/log/consume/consume
log4j.appender.CONSUME.Append=true
log4j.appender.CONSUME.Threshold=ERROR
log4j.appender.CONSUME.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSUME.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH:mm:ss} :%c %m%n
log4j.appender.CONSUME.encoding=UTF-8
# BUYCOUPON
log4j.logger.BUYCOUPON = ERROR,BUYCOUPON
log4j.appender.BUYCOUPON=org.apache.log4j.DailyRollingFileAppender
log4j.appender.BUYCOUPON.DatePattern='-'yyyy-MM-dd'.log'
log4j.appender.BUYCOUPON.File=/usr/local/log/buycoupon/buycoupon
log4j.appender.BUYCOUPON.Append=true
log4j.appender.BUYCOUPON.Threshold=ERROR
log4j.appender.BUYCOUPON.layout=org.apache.log4j.PatternLayout
log4j.appender.BUYCOUPON.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH:mm:ss} :%c %m%n
log4j.appender.BUYCOUPON.encoding=UTF-8
# REFUND
log4j.logger.REFUND = ERROR,REFUND
log4j.appender.REFUND=org.apache.log4j.DailyRollingFileAppender
log4j.appender.REFUND.DatePattern='-'yyyy-MM-dd'.log'
log4j.appender.REFUND.File=/usr/local/log/refund/refund
log4j.appender.REFUND.Append=true
log4j.appender.REFUND.Threshold=ERROR
log4j.appender.REFUND.layout=org.apache.log4j.PatternLayout
log4j.appender.REFUND.layout.ConversionPattern=[%-5p]_%d{yyyy-MM-dd HH:mm:ss} :%c %m%n
log4j.appender.REFUND.encoding=UTF-8
原文地址:http://m.blog.csdn.net/blog/lizeyang/8973919
所以去掉RECHARGE 配置log4j.logger.RECHARGE = ERROR,RECHARGE
这回就可以单独输出了。