log4j 开发部署通用配置

工作中我们经常会想要保留系统运行日志,以供我们检查系统运行情况之用,但由于 Debug 级别的日志量太大我们又不想保留,可开发中我们又想要去查看 Debug 级别的日志。那么问题来了,除了写两套配置文件或在部署时修改配置文件,还有其他办法可以同时解决这个问题吗?
答案是:当然有。老实说,博主并不太了解 log4j 的详细配置即含义,但这并不妨碍记录今天的文章。开讲~!

# -------------------  1  -------------------
log4j.rootLogger = debug,info,warn,error,stdout

# -------------------  2  -------------------
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%nmethod:%l%n%m%n

# -------------------  3  -------------------
log4j.appender.info = org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.File = E:/logFile/log_info.log
log4j.appender.info.Append = true
log4j.appender.info.Threshold = INFO
log4j.appender.info.layout = org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern =  [ %p ]  %d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] -  %m%n

# -------------------  4  -------------------
log4j.appender.warn = org.apache.log4j.DailyRollingFileAppender
log4j.appender.warn.File = E:/logFile/log_warn.log
log4j.appender.warn.Append = true
log4j.appender.warn.Threshold = WARN
log4j.appender.warn.layout = org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern = [ %p ]  %d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] -  %m%n

# -------------------  5  -------------------
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.File = E:/logFile/log_error.log
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern = [ %p ]  %d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] -  %m%n

第一部分详解

这个部分是定义要记录的日志的级别系统默认有八个级别从低到高依次为: ALL

  • ALL 包含所有级别包括自定义级别。
  • TRACE 比DEBUG更低的信息事件,一般不会用。
  • DEBUG 调试级别,主要用于开发过程中打印一些运行信息,对调试应用程序是非常有帮助。
  • INFO 消息在粗粒度级别上突出强调应用程序的运行过程。打印一些你感兴趣的或者重要的信息,这个可以用于生产环境中输出程序运行的一些重要信息,但是不能滥用,避免打印过多的日志。
  • WARN 输出潜在的有可能出错的情形 , 也就是输出警告信息。
  • ERROR 输出发生的不影响系统继续运行的错误信息,如果不想输出太多的日志,可以使用这个级别。
  • FATAL 输出严重的错误, 这些错误将会导致系统终止运行。
  • OFF 最高等级的,用于关闭所有日志记录。

从我的代码中可以看到,在第一部分我定义了 debug,info,warn,error 这四个系统默认级别,和一个 stdout 自定义级别。这样一来,我们只要把自定义级别 stdout 设置为将内容打印到控制台,而将 info,warn,error 设置为将内容保存至日志文件,即可实现编码时控制台输出 debug 级别日志部署运行后生成 info,warn,error 级别日志功能。(开发环境中也会生成 info,warn,error 级别日志文件)

第二部分详解

将自定义级别日志输出至控制台。eg:

[ERROR] 2019-06-14 12:02:16,002 method:com.process.FlightTrainTask.taskCycle(FlightTrainTask.java:24)  

剩余部分详解

剩余部分内容除生成的日志文件名和日志级别不同,其余均项目。故下面的解释将已第三部分为例。

log4j.appender.info 该属性定义了日志以每天一个文件的形式生成。
log4j.appender.info.File 该属性定义了生成的日志文件的保存路径和文件名。
log4j.appender.info.Append 该属性定义了新的日志信息已增量的方式追加到已有的日志文件中。
log4j.appender.info.Threshold 该属性定义了要生成的日志级别。
log4j.appender.info.layout 该属性定义了日志格式为自定义格式。
log4j.appender.info.layout.ConversionPattern 该属性定义了日志格式。

了解更多 log4j 的使用配置方法:https://blog.csdn.net/dyz4001/article/details/81103863

你可能感兴趣的:(后台)