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提供每个级别方法记录日志
- LOG.fatal("致命错误");
- LOG.error("普通错误");
- LOG.warn("警告信息");
- LOG.info("普通信息");
- LOG.debug("调试信息");
- 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 也不靠谱了...
解决java log4j 配置log4jCaused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager