一、准备阶段
下载log4j2相关jar包:log4j-core-xx.jar and log4j-api-xx.jar
了解log4j版本1和2的区别:
a.log4j传统的配置使用.properties文件(键值对的形式)居多
b.log4j2中默认搜索的配置文件名字变为log4j2或log4j2-test开头的配置文件
(性能的提升就不在多说了)
1.日志级别:
trace < debug < info < warn < error < fatal
a.级别之间是包含的关系,意思是如果你设置日志级别是trace,则大于等于这个级别的日志都会输出
b.各个级别的含义:
fatal : 用在极端的情况中,非常严重的错误
error : 显示一个错误信息
warn :不一定是一个bug,系统出现的任何警告
info : 用于基本的,高层次的诊断信息
debug :用于协助低层次的调试
trace : 用于展现程序执行的轨迹
2.配置文件(重点)
例如:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="error">
<!--先定义所有的appender-->
<appenders>
<!--这个输出控制台的配置-->
<Console name="Console" target="SYSTEM_OUT">
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
<!--这个都知道是输出日志的格式-->
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
</Console>
<!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用-->
<File name="log" fileName="log/test.log" append="false">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
</File>
<!--这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
<RollingFile name="RollingFile" fileName="logs/app.log"
filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
<SizeBasedTriggeringPolicy size="50MB"/>
</RollingFile>
</appenders>
<!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
<loggers>
<!--建立一个默认的root的logger-->
<root level="trace">
<appender-ref ref="RollingFile"/>
<appender-ref ref="Console"/>
</root>
</loggers>
</configuration>
1)根节点configuration,然后有两个子节点:appenders和loggers(都是复数,意思就是可以定义很多个appender和logger了
2)appenders:这个下面定义的是各个appender,就是输出的位置
3)loggers下面会定义许多个logger,这些logger通过name进行区分,来对不同的logger配置不同的输出,方法是通过引用上面定义的logger,注意,appender-ref引用的值是上面每个appender的name,而不是节点名称。
3.在指定log输出位置的时候,还可以定义输出的格式。
%r 指的是程序运行至输出这句话所经过的时间(单位:毫秒)
%t 指的是发起这一log的线程
%c 指的是类名(包名+类名)
%l 指的是类全名(包名+类名+方法名(显示日志所在类的行数))
%msg 指的是log输出的信息
%n 换号符
分享到:
相关推荐
总结来说,Log4j2.16.0是一个关键的安全更新,解决了Log4j2框架中的“Log4Shell”漏洞。对于使用若依框架或其他依赖Log4j2的项目,升级到这个版本至关重要,可以避免系统遭受恶意攻击。用户需要下载并正确安装这个...
Log4j和Log4j2是两种广泛使用的Java日志框架,它们提供了灵活的日志配置和高性能的日志处理能力。本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,...
Log4j2,一个广泛使用的Java日志框架,最近曝出的重大安全漏洞(CVE-2021-44228,被称为Log4Shell)引起了全球的关注。这个漏洞允许攻击者通过精心构造的日志输入执行远程代码,从而对系统造成严重威胁。为了解决这...
总结,Log4j2通过XML配置文件实现了与MySQL数据库的集成,允许开发者将日志信息存储在数据库中,便于长期保存和分析。理解Log4j2的配置和使用是每个Java开发者必备的技能,这对于日后的故障排查和系统维护至关重要。...
总结,Log4j2的异步多线程打印功能是提高系统性能和日志管理效率的关键。通过理解和实践这个示例项目,开发者可以更好地掌握如何在实际应用中利用Log4j2的强大功能,优化日志处理,尤其是在高并发的复杂环境中。
接下来,将详细介绍SLF4J和Log4j2的配置使用。 ### SLF4J与Log4j2的配合使用 在Spring Boot项目中,可以使用SLF4J作为日志门面,通过Log4j2实现日志记录。首先需要在项目中排除Spring Boot默认的日志实现(即...
在提供的"Log4j2 demo (log4j2 version 2.1)"工程中,你可以深入了解如何配置和使用Log4j2进行日志记录。通过研究代码和配置文件,你将能够掌握如何创建Logger、配置Appender、定义Layout,以及如何利用过滤器和...
Log4j 使用总结 Log4j 是 Apache 的一个开放源代码项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI 组件、甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等;我们也可以...
总结,SLF4J和Log4j的组合使用让日志管理更加灵活,开发者可以通过SLF4J的简洁API进行日志记录,同时利用Log4j的强大功能,如自定义输出格式和多种输出目的地。通过适当的配置和测试,我们可以确保日志系统按照预期...
### Log4j 使用详解 #### 一、Log4j简介 Log4j 是 Apache 的一个开源项目,通过使用 Log4j,开发者能够控制日志信息的输出等级及去向,从而更加灵活地处理日志信息。它具有强大的功能,简单的配置,并且能够支持...
#### 四、使用Log4j记录日志 1. **引入Log对象**: ```java protected final Log log = LogFactory.getLog(getClass()); ``` 在Java类中,需要引入Log对象以便记录日志信息。 2. **记录日志信息**: ```...
- `org.apache.log4j.PatternLayout`:使用模式布局。 - `ConversionPattern`:定义输出的格式,例如`[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n`表示输出的信息包括框架名称、日期、线程ID等。 ##### 3.4 文件输出...
**日志框架Log4j2详解与应用**...总结来说,Log4j2是一个强大的日志框架,通过灵活的配置和高性能的实现,能够满足各种日志记录需求。理解并熟练掌握其配置和使用,对于提升Java应用的可维护性和调试效率具有重要作用。
例如,如果应用程序使用的是UTF-8编码,而log4j默认使用的是系统默认编码(如GBK),那么就可能出现中文乱码的情况。 #### 三、解决方案 解决log4j乱码的关键在于正确地配置字符编码。下面介绍具体的步骤: 1. **...
本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j是一个开源的日志组件,支持多种输出格式,如控制台、文件、数据库等。它的核心概念包括Logger、...
总结,log4j2.17.2是应对Log4j2 RCE漏洞的重要更新,通过加强安全配置和限制危险功能,为Java应用程序提供了更坚固的安全屏障。对于依赖Log4j2的系统而言,及时升级至该版本是保障系统安全、防范潜在风险的有效手段...
### Log4j 使用实例详解 #### 一、Log4j简介 Log4j 是一个开源的日志记录框架,由 Apache 软件基金会提供。它允许开发者根据需求配置日志等级,并灵活选择日志信息的输出方式。Log4j 的核心组件包括 Logger、...
6. **事件数据结构**:Log4j2使用LogEvent对象封装日志信息,使其更易于处理和过滤。 7. **日志级别的优先级**:Log4j2允许设置每个Logger的优先级,便于控制日志输出的详细程度。 8. **自动重加载配置**:如果...
《Log4j到Log4j2的升级指南》 在日志管理领域,Log4j一直扮演着重要的角色,尤其在Java开发中,它作为一款强大的日志记录框架,为...因此,对于正在使用Log4j的项目来说,考虑升级到Log4j2是一个值得考虑的选择。
在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发效率和系统的可维护性。本文将详细介绍两种常见的 Log4j 配置方式:Tomcat 级别的统一日志管理和每个 web 应用分别配置 Log4j,...