Java日志:Log4j

为啥叫Log4j?

Log4j就是log for java。是针对Java语言输出日志的工具,够见名知意吧?

Log4j干嘛的?

记录日志
为啥要记录日志?
为了记录便于分析。直接打印到控制台实在太low。

Log4j使用须知

要导包,jar文件,不导包玩个锤子

Log4j配置文件讲解

java配置文件采用key = value的方式存储配置

实例配置文件:

log4j.rootLogger = debug,C,D,E

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

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /home/soft01/log4j/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = debug 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

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

讲解:

  • rootLogger:
  • debug: LEVEL日志记录的优先级
  • C,D,E:目的地,表示日志会输出到这CDE这3个地方

配置信息输出方式:

  • org.apache.log4j.ConsoleAppender:输出到控制台
  • org.apache.log4j.FileAppender:输出到文件,且每天产生一个新文件
  • org.apache.log4j.DailyRollingFileAppender:输出到文件,且每天产生一个新文件
  • org.apache.log4j.RollingFileAppender:输出到文件,且当文件达到一定大小产生一个新文件

log4j.appender.C.Target:发送的目的地:

  • System.out:发送到控制台标准流
  • log4j.appender.D.File:发送到指定的文件中

log4j.appender.E.Append:文件追加方式

  • true:追加
  • false:覆盖

log4j.appender.E.Threshold:指定消息输出的最低层次

  • debug
  • ERROR

log4j.appender.E.layout:设置显示样式

  • org.apache.log4j.PatternLayout:自定义模式
  • HtmlLayout:HTML表格形式
  • SimpleLayout:包含日志级别、信息的简单模式
  • TTCClayout:包含日志时间、线程、类别的信息

log4j.appender.E.layout.ConversionPattern:设置显示样式

  1. [%5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
  2. %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
  3. %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
  • %5p:p表示优先级,5表示输出宽度不够5位用空格补,补在p前(右对齐)
  • %d:时间格式表示后面会输出时间,
  • %-d:左对齐,
  • %n:换行
  • %t:表示输出产生该日志事件的线程名
  • %i:输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数

Log4j如何使用

  1. 准备好配置文件
    将配置文件log4j.properties放入src文件夹中,编译时可以自动移植(找到对应字节码文件路径)。
  2. 获得日志对象
    Logger log = Logger.getLogger(类名.class);
  3. 调用对应等级的方法。如debug
    logger.debug("干debug");

完整实例代码:


日志实例

你可能感兴趣的:(Java日志:Log4j)