Java--log4j

Posted kz2017

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java--log4j相关的知识,希望对你有一定的参考价值。

log4j技术

1.什么是日志技术,开发中为什么要用日志技术  

    日志 : 它是Apache公司提供的企业主流日志技术,在系统运行过程中,记录关键信息、记录错误异常信息的技术。日志代码量占总代码量的4%

   * 区分 System.out 和 日志技术 

   * System.out 向控制台输入信息,一定输出

   * 日志技术它存在级别,通过级别控制日志是否输出,输出的详细程度,输出的目的地(控制台、文件、发送邮件)

 

    使用日志:主要用于开发过程中调试和项目上线后的维护(记录bug)

 

2.使用log4j 通过配置文件,配置日志框架使用 

    src/log4j.xml

    src/log4j.properties (简单)

 

    配置log4j.properties 有三个组件 

    ①组件一:记录器(Loggers)用来配置日志输出级别,使用哪些输出源  【一个记录器指定多个输出源(日志的输出目标)】

        格式:记录器名 = 级别, 输出源1 , 输出源2 ...     

//info是日志级别 , stdout是输出源名称 
log4j.rootLogger=info, stdout    

 

    * log4j提供日志级别 由高到低 :fatal(致命错误), error(普通错误), warn(警告),info(信息), debug(调试), trace(堆栈 )

    * log4j记录日志时,只会记录配置级别更高级别的信息 

 

    ②组件二:输出源(Appenders)在log4j中可以定义多个输出源(控制台、日志文件、邮件、数据库)

    格式:log4j.appender.输出源名称 = 实现类      

log4j.appender.stdout=org.apache.log4j.ConsoleAppender //向控制台输出 
log4j.appender.file=org.apache.log4j.FileAppender //向文件输出 

 

 

    ③组件三:布局(Layouts)在日志中都记录哪些信息     

//自定义布局
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
//自定义布局格式(查看布局相关文档,阅读其意思)
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n  

 

 

3.在程序中使用log4j 记录日志 

    ①步骤一:定义记录器(Java类中)     

 

//参数为当前类
private static final Logger LOG = Logger.getLogger(Log4jTest.class);

 

    ②步骤二:使用log4j提供每个级别方法记录日志      

  1. LOG.fatal("致命错误");
  2. LOG.error("普通错误");
  3. LOG.warn("警告信息");
  4. LOG.info("普通信息");
  5. LOG.debug("调试信息");
  6. LOG.trace("堆栈信息");

    *常用 : error、warn、info、debug

 

例子(

log4j.properties

):

### 记录器(Loggers) 输出源(Appenders) 布局(Layouts) ###
### org.apache.log4j.ConsoleAppender 控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### org.apache.log4j.FileAppender 文件 ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=d:/mylog.log
### org.apache.log4j.PatternLayout 可以灵活地指定布局模式###
log4j.appender.file.layout=org.apache.log4j.PatternLayout
###%d 输出日志时间点的日期或时间,默认格式为ISO8601 ###
###%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL###
###%c 输出所属的类目,通常就是所在类的全名 ###
###%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数###
###%m 输出代码中指定的消息###
###%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”###
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### log4j.rootLogger记录器  分为debug除错 info消息 warn警告 error错误   ###
log4j.rootLogger=debug,stdout

 

以上是关于Java--log4j的主要内容,如果未能解决你的问题,请参考以下文章

大聪明教你学Java | Log4j 漏洞到底是怎么一回事?Log4j 2.15.0 也不靠谱了...

ecliplse java log4j 配置

JAVA LOG4J使用方法

JAVA log4j日志文件使用

解决java log4j 配置log4jCaused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager

java log4j使用