log4j2的使用

Log4j2日志记录框架的使用教程与简单实例 1、Log4j2的使用教程 1.1简介 Log4j的1.x版本虽然已经被广泛使用于很多应用程序中,但由于出现内存泄漏等bug,代码难以维护,以及需要使用老版本的jdk等劣势,在2015年8月已经玩完。它的替代品,SLF4J,Logback,Log4j2对日志框架做了很多必要的改进。 历史上出现了很多的日记框架,如: Log4j:Apache Log4j是一个基于Java的日志记录工具。它... 阅读详情

log4j2的使用

目录

1. maven的pom.xml中导包
2. 添加配置文件
3. 使用

1、maven的pom.xml中导包

   <dependencies>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>2.11.1</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.11.1</version>
		</dependency>
	</dependencies>
如果使用slf4j作为日志门面,log4j2作为日志实现,还需导入以下依赖
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.28</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.9.1</version>
    </dependency>
    ```
        如果是spring-boot项目,默认使用的是logback日志框架,需要先排除logback的依赖:
```xml
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>-->
                   <artifactId>spring-boot-starter-logging</artifactId>-->
               </exclusion>
            </exclusions>
        </dependency>

2、添加配置文件
在项目resource文件夹下新建xml文件,文件名为log4j2.xml
在这里插入图片描述

   <Configuration status="off" monitorInterval="300">
	<properties>
		<property name="LOG_HOME">D:/logs</property>
		<property name="FILE_NAME">mylog</property>
	</properties>
	<Appenders>
		<Console name="Console" target="SYSTEM_OUT">
			<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
		</Console>
		<RollingRandomAccessFile name="MyFile"
			fileName="${LOG_HOME}/${FILE_NAME}.log"
			filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd HH-mm}-%i.log">
			<PatternLayout
				pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
			<Policies>
				<TimeBasedTriggeringPolicy interval="1" />
				<SizeBasedTriggeringPolicy size="10 MB" />
			</Policies>
			<DefaultRolloverStrategy max="20" />
		</RollingRandomAccessFile>
		<!--异步日志追加器1:AsyncAppender 生产上几乎不使用,因为性能低下-->
        <Async name="Async">
            <AppenderRef ref="file" />
        </Async>

        <!--异步日志追加器2:AsyncLogger 全局方式
        在项目resources目录下创建文件 log4j2.component.properties ,添加属性
        Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector
        -->
	</Appenders>
 
	<Loggers>
		<!--异步日志追加器2:AsyncLogger 局部方式
        自定义 logger 对象 ,只对com.log包下的代码进行异步日志追加, <AppenderRef ref="Console" />指定需要异步的日志追加器
        includeLocation="false" 关闭日志记录的行号信息,开启的话会严重影响异步输出的性能
        additivity="false" 不再继承 rootlogger对象
        -->
        <AsyncLogger name="com.log" level="trace" includeLocation="false" additivity="false">
            <AppenderRef ref="Console" />
        </AsyncLogger>
		<Root level="error">
			<AppenderRef ref="Console" />
			<AppenderRef ref="MyFile" />
		</Root>
	</Loggers>
</Configuration>

根标签Configuaration 的两个属性:
status:用来指定log4j2自身的日志级别(log4j2自身程序运行的日志级别)
monitorInterval:log4j2自动检测更新配置文件(log4j2.xml)改动并更新的时间间隔,最少5秒。
子标签properties用于定义一些常量
子标签 appenders 用于定义输出器,可以输出到控制台和文件.
appenders的子标签Console 可以将日志信息输出到控制台,RollingRandomAccessFile 可以将日志信息输出到文件并通过设置分割文件的策略,将文件按时间或者文件大小分隔成一个个的小文件。
PatternLayout 标签的pattern属性用于设置日志输出样式。
%d{HH:mm:ss.SSS}:%d代表日志时间,后面{}包括的内容是时间格式,
%-5level:level代表日志等级,-代表左对齐5代表取日志等级的前五个字符,
%n:代表换行,
%l:行号
%c:类名
%M:方法名
%msg:日志内容
%m:日志内容简写
在Loggers的root标签里声明要使用的追加器Console、MyFile(在Appenders标签中定义的),不然不会生效
更多日志样式设置可以参考官网说明:
在这里插入图片描述在这里插入图片描述
官网英文如果看着吃力可以用流量器的翻译功能把网页翻译一下。
TimeBasedTriggeringPolicy标签中的 interval属性表示多长时间分割一次RollingRandomAccessFile 标签的属性filePattern中定义的日志文件单位取决于filePattern中%d{}日志时间格式的最后以为,如果最后一位是小时,就是每隔1小时,切割一次日志文件。
SizeBasedTriggeringPolicy标签中 size表示从RollingRandomAccessFile标签的fileName属性定义的文件切割出来的文件的大小。

DefaultRolloverStrategy标签的max表示filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd HH-mm}-%i.log">中i的最大值,i的初始值是1,当达到最大值时,将删除i=1的文件,并重命名其他文件的名字,具体就是将其他文件的i-1,具体可参考 https://www.cnblogs.com/yeyang/p/7944899.html

Loggers标签用于定义记录器,就是代码中要用到的,实际引用的。
它的子标签root定义了根记录器的属性,包括日志等级level和子标签appenderRef(日志输出器,就是上面appenders标签里定义的日志输出器)。appenderRef的ref属性指定使用哪个日志输出器。

3、使用

public static Logger logger = LogManager.getLogger(This.class);
logger.info("log4j2日志打印");

官方建议定义为静态变量。getLogger()的参数不填也行,它会自动将获取到的记录器命名为当前类的全类名。
生产上日志对于查找问题是非常重要的手段,以前没有重视。今天好好看了一下。总结的还是很浅显,但是够日常使用了,有错误的地方,欢迎指出!

Java日志框架Log4j 2详解 这是一篇Log4j 2的详解,感兴趣的可以观看 阅读详情

相关推荐

log4j 2使用教程

最新版log4j 2的使用教程,简明扼要,非常好用

maven配置log4j

1下载安装jar包 去maven 仓库 https://mvnrepository.com/artifact/log4j 直接拿最新的版本,拿配置信息,黏贴到pom.xml就可以了 <!-- https://mvnrepository.com/artifact/log4j/log4j --> <dependency> <groupI...

qq_36379597的博客 2万+

Cadence Virtuoso实战:用gm/Id方法搞定折叠式共源共栅放大器设计(附完整仿真流程)

本文详细介绍了在Cadence Virtuoso设计环境中,运用gm/Id方法高效设计折叠式共源共栅放大器的完整实战流程。该方法通过工艺特征曲线,将设计指标映射到晶体管尺寸与偏置,有效克服深亚微米工艺下传统方法的不足。文章以TSMC 180nm工艺为例,从指标拆解、参数查找、电路搭建、仿真验证到问题调试,提供了清晰、可复现的操作指南,并探讨了自动化脚本与版图考量,助力工程师和学生提升模拟IC设计效率与成功率。

jwt8token的博客 646

用maven安装log4j 2

log4j 2分解为两部分,一部分是API(即log4j-api),一部分是具体实现(即log4j-core)。我们平时应用中使用是直接跟log4j-api这部分打交道

听海边涛声 2320

revit二次开发环境搭建(2024版)(小白友好)

revit二次开发环境配置,SDK、addin manager和lookup新手友好安装教程

m0_56961251的博客 1419

西门子【Automation Framework V1.2】AF架构:从软件栈到高效自动化项目的构建蓝图

本文深入解析西门子Automation Framework V1.2 (AF架构) 的核心价值与实施蓝图。该框架通过定义标准化的软件栈(如TIA Portal V19、STEP7、WinCC Unified)和严格的安装配置流程,将自动化项目开发从依赖个人经验的“手工作坊”模式,转变为高效、可复制的工业化模式。遵循此架构,工程师能快速构建稳定可靠的项目基础,规避环境冲突,从而专注于核心工艺与逻辑设计,大幅提升团队协作与项目交付效率。

weixin_29230059的博客 428

log4j2 实际使用详解

一、目录简介 基础部分 日志框架简单比较(slf4j、log4j、logback、log4j2 ) log4j2基础知识 log4j2实用配置 实战部分 slf4j + log4j2 实际使用 二、日志框架比较(slf4j、log4j、logback、log4j2 ) 日志接口(slf4j) slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使

人不风流枉少年 14万+

Windows 10 下 DockerToolbox 安装全攻略:从下载到配置阿里云镜像加速

本文详细介绍了在Windows 10系统上安装和配置DockerToolbox的完整流程。从下载安装包、执行初步安装,到关键步骤——修改虚拟机存储路径以及配置阿里云镜像加速器,旨在帮助开发者,尤其是初次接触Docker的新手,快速搭建高效的本地容器开发环境,并解决国内镜像下载缓慢的痛点。

moon9的博客 474

日志框架log4j升级至log4j2

大家好,我是默语,擅长全栈开发、运维和人工智能技术。在这篇博客中,我将详细介绍如何将日志框架从Log4j升级到Log4j2,确保在项目中实现更高效、更安全的日志管理。关键词:Log4j2升级、日志框架、Java日志、SLF4J、Log4j2配置。升级步骤具体操作删除Log4j核心包注释Log4j依赖,并排除第三方包引入的Log4j引入Log4j2和SLF4J桥接包添加Log4j2核心包和SLF4J与Log4j2的桥接包修改日志打印代码使用SLF4J的LoggerFactory进行日志打印。

沉淀所学,分享所思,让热爱与成长同行。商务记录AI实战经验,助力开发者快速成长。 热爱AI,希望做出有影响力的技术成果。 技术点亮生活,分享连接价值与机会。 专注AI落地实战,陪你走好技术每一步。 6万+

华为OD机试双机位C卷-魔法收积木 (C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【魔法收积木】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为od - 魔法收积木。

qq_45776114的博客 1939

Nacos 从困惑到蒙圈(9)Nacos 适配 达梦数据库【最新版】

介绍Nacos适配达梦数据库的详细步骤,包括对最新版本的支持改造。

甘蓝的专栏 1376

Java Log4j和Log4j2的区别

Java Log4j和Log4j2的区别 一、核心JAR包 log4j核心包:log4j:log4j:[version] 而log4j2的核心包有2个: org.apache.logging.log4j:log4j-core:[version] org.apache.logging.log4j:log4j-api:[version] 二、配置文件 log4j:通过一个log4j....

zhibin的程序日记 1万+

YOLOv8 改进涨点 | 模块即插即用 直接可用

在目标检测任务中,注意力机制能够帮助模型聚焦于图像中的关键区域,显著提升检测精度。。创建模块代码注册模块修改任务解析tasks.py创建YAML配置文件模块核心优势适用场景计算开销SOCA捕获二阶统计信息,增强通道间相关性需要精细特征区分的场景中等SK自适应多尺度核选择多尺度目标检测中等偏高显式特征聚集-分配机制全局上下文建模中等A2-Net双线性注意力,高效全局交互复杂场景理解中等偏高CrissCross线性复杂度全局上下文高分辨率输入,长距离依赖较低。

u012133341的博客 2256

关于slf4j、log4j、log4j2 以及使用log4j-1.2-api将log4j适配到log4j2上的案例

关于 关于slf4j、log4j、log4j2 等的概念,以及介绍将三方库中的 log4j1 输出的日志转接到log4j2上的方式。

zhy1379的博客 5207

MATLAB基础应用精讲-【深度强化学习】SAC(Soft Actor-Critic)算法(附MATLAB和python代码实现)

Actor 网络:用于选择动作。Critic 1 和 Critic 2 网络:用于估计 Q 值。Target Critic 1 和 Target Critic 2:与 Critic 网络架构相同,用于生成更稳定的目标 Q 值。,即在保证探索的情况下选择高价值动作。软更新目标 Q 网络参数,使得目标网络参数缓慢向当前网络靠近,避免振荡。

qq_36130719的博客 453

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

log4j2模板,log4j模板,log4j相关属性

文章目录1. log4j2模板1.1 `pom.xml`依赖1.2 `log4j2.xml`配置文件1.3 java中使用2. log4j模板2.1 `pom.xml`依赖2.2 `log4j.properties` 源配置2.3 `log4j.properties` 配置解释【***】2.4 java中使用学习参考地址 1. log4j2模板 1.1 pom.xml依赖 <dependency> <groupId>org.apache.logging.log4j&l

Java小皮孩 2812

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

log4j和log4j2配置详解

文章目录1 log4j或log4j2配置详解1.1 pom.xml文件1.2 log4j.properties的引用1.3 log4j.properties的说明1.3.1 rootLogger文件1.3.2 输出目的地appender文件1.3.2.1 ConsoleAppender1.3.2.2 FileAppender1.3.2.3 DailyRollingFileAppender1.3.2...

上善若泪 6092

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

log4j升级log4j2

项目版本统一升级 主要就是三点一、去除log4j原来的相关的引用 具体是这几个包,maven相关就找对应名字就对了 这些都是关于log4j1的二、添加新的log4j2的相关引用 其中 来源https://blog.youkuaiyun.com/catoop/article/details/121858136 log4j-1.2-api.jar --> (log4j -> log4j2) 将log4j 的日志转接到log4j2日志...

qq_44181748的博客 5197

log4j与log4j2性能对比及log4j升级至log4j2方案

1.前言 之前某个服务在压测环境中出现了问题,分析之后得知是log4jLogger对象争用厉害,很多线程阻塞在此。 以上问题证明log4j在高并发高QPS情况下,是存在性能问题的。 之后把log4j升级成了log4j2,并采取异步日志模式,解决了因日志造成的性能问题。 2.性能对比 关于log4j与log4j2的性能对比文章有很多,本文不过多描述,给出几张结论图及原文链接,作为参考...

韩超的博客 (hanchao5272) 1万+

SpringBoot中日志的使用log4j2

SpringBoot中日志的使用log4j2

YIYIYI 4022

Log4j2使用详解

日志框架简单比较(slf4j、j.u.l、log4j、logback、log4j2 ) slf4j:slf4j是对所有日志框架制定的一种规范、标准、接口,并不是一个框架的具体的实现,因为接口并不能独立使用,需要和具体的日志框架实现配合使用(如log4j、logback、log4j2)。 j.u.l:j.u.l是java.util.logging包的简称,是JDK在1.4版本中引入的Java原生日志框架。 log4j:log4j是apache实现的一个开源日志组件。 logback:logback同样

tunan666的博客 9939

Log4j2使用总结

Log4j 2 包含了基于LMAX 分离库的下一代的异步日志系统,在多线程环境下,异步日志系统比 Log4j 1.x 和Logback 提高了10倍性能提升(吞吐量和延迟率 )。

流子的专栏 5万+

log4j2使用总结

一、Log4j有三个主要的组件:Loggers,Appenders和Layouts,这里可简单理解为日志级别,日志要输出的地方和日志格式1、 LoggerLogger的日志级别有6级,分别是TRACE<DEBUG 2、 appender常用的输出有控制台、文件、数据库等 二、Log4j2配置 1、web.xml配置文件  XML Code  1 2

无羁之风的专栏 6584
上一篇: spring的xml配置文件中约束-schema的语法
下一篇: MySQL事务
兵bing
博客等级 码龄16年 144粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值