`
zistrong
  • 浏览: 18487 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Log4j2使用

 
阅读更多

 

 

Log4j 2 maven依赖jar,Log4j 2 从2.4版本开始使用JDK7编译

 

		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>2.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.3</version>
		</dependency>

		<!--使用slf4j封装日志API,如果不使用可以不用引用,log4j2最低要求1.6版本-->
        <dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.5</version>
		</dependency>
        <dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
			<version>2.3</version>
		</dependency>
        <!--异步日志,不使用异步可以不引用-->
		<dependency>
			<groupId>com.lmax</groupId>
			<artifactId>disruptor</artifactId>
			<version>3.0.0</version>
		</dependency>

 

 

log4j2.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="error">

	<Properties>
		<Property name="logFilePath">D:\\logs</Property>
		<!-- 一小时一个日志文件 -->
		<Property name="interval">1</Property>
		<!-- 业务日志输出格式 -->
		<Property name="selfPattern">%m%n</Property>
		<!-- 其中%t参数表示当前线程ID -->
		<Property name="ConversionPattern">[oi-service-${sys:dubbo.protocol.port}]%d[%t][%p]
			- %m - [%l]%n</Property>
	</Properties>
	<appenders>
		<!-- 输出到控制台 -->
		<Console name="Console" target="SYSTEM_OUT">
			<ThresholdFilter level="info" onMatch="ACCEPT" />
			<PatternLayout pattern="[oi]%d [%p] - %m [%l] %n" />
		</Console>

		<RollingFile name="debug"
			fileName="${logFilePath}/debug-${sys:dubbo.protocol.port}.log"
			filePattern="${logFilePath}/debug-${sys:dubbo.protocol.port}.log.%d{yyyy-MM-dd-HH}">
			<ThresholdFilter level="debug" onMatch="ACCEPT"
				onMismatch="DENY" />
			<PatternLayout pattern="${ConversionPattern}" />
			<TimeBasedTriggeringPolicy interval="1" />
		</RollingFile>


		<RollingFile name="info"
			fileName="${logFilePath}/info-${sys:dubbo.protocol.port}.log"
			filePattern="${logFilePath}/info-${sys:dubbo.protocol.port}.log.%d{yyyy-MM-dd-HH}">
			<ThresholdFilter level="info" onMatch="ACCEPT"
				onMismatch="DENY" />
			<PatternLayout pattern="${ConversionPattern}" />
			<TimeBasedTriggeringPolicy interval="${interval}" />
		</RollingFile>

		<RollingFile name="warn"
			fileName="${logFilePath}/warn-${sys:dubbo.protocol.port}.log"
			filePattern="${logFilePath}/warn.log-${sys:dubbo.protocol.port}.%d{yyyy-MM-dd-HH}">
			<ThresholdFilter level="warn" onMatch="ACCEPT"
				onMismatch="DENY" />
			<PatternLayout pattern="${ConversionPattern}" />
			<TimeBasedTriggeringPolicy interval="${interval}" />
		</RollingFile>

		<RollingFile name="error"
			fileName="${logFilePath}/error-${sys:dubbo.protocol.port}.log"
			filePattern="${logFilePath}/error-${sys:dubbo.protocol.port}.log.%d{yyyy-MM-dd-HH}">
			<ThresholdFilter level="error" onMatch="ACCEPT"
				onMismatch="DENY" />
			<PatternLayout pattern="${ConversionPattern}" />
			<TimeBasedTriggeringPolicy interval="${interval}" />
		</RollingFile>



		<RollingFile name="inf"
			fileName="${logFilePath}/inf-${sys:dubbo.protocol.port}.log"
			filePattern="${logFilePath}/inf-${sys:dubbo.protocol.port}.log.%d{yyyy-MM-dd-HH}">
			<ThresholdFilter level="info" onMatch="ACCEPT"
				onMismatch="DENY" />
			<PatternLayout pattern="${selfPattern}" />
			<TimeBasedTriggeringPolicy interval="${interval}" />
		</RollingFile>

		<RollingFile name="query"
			fileName="${logFilePath}/query-${sys:dubbo.protocol.port}.log"
			filePattern="${logFilePath}/query-${sys:dubbo.protocol.port}.log.%d{yyyy-MM-dd-HH}">
			<ThresholdFilter level="info" onMatch="ACCEPT"
				onMismatch="DENY" />
			<PatternLayout pattern="${selfPattern}" />
			<TimeBasedTriggeringPolicy interval="${interval}" />
		</RollingFile>
		<Async name="Async">
			<AppenderRef ref="Console" />
		</Async>
	</appenders>

	<loggers>
		<!--自定义日志输出, 使用异步日志,log4j2建议业务日志使用同步,程序猿使用的日志使用异步 -->
		<asyncLogger name="inf" level="info" additivity="false">
			<appender-ref ref="inf" />
		</asyncLogger>

		<logger name="query" level="info" additivity="false">
			<appender-ref ref="query" />
		</logger>

		<logger name="org" level="error" additivity="false">
		</logger>
		<logger name="com.opensymphony.xwork2" level="off" additivity="false">
		</logger>
		<logger name="com.alibaba.dubbo" level="error" additivity="false">
		</logger>
		<asyncRoot level="trace" includeLocation="true">
			<appender-ref ref="info" />
			<appender-ref ref="error" />
			<appender-ref ref="warn" />
			<appenderRef ref="Console" level="error" />
		</asyncRoot>
	</loggers>
</configuration> 

 

 log4j2异步日志和log4j1性能比较,使用ab,并发10000,100000次请求:

log4j2

 

 

log4j1

 

 

其中log4j2的性能是log4j1的10倍。

  • 大小: 20.4 KB
  • 大小: 20.5 KB
分享到:
评论

相关推荐

    log4j2使用入门

    **标题:“Log4j2使用入门”** **描述:** 这篇博客主要介绍了如何开始使用Log4j2,Log4j2是Apache的一个开源日志框架,它提供了灵活的日志记录功能,比其前一代Log4j更加高效和功能强大。通过学习Log4j2,开发者...

    Log4j2结合Slf4j配置使用

    Log4j2 结合 Slf4j 配置使用 Log4j2 是一个功能强大且广泛使用的日志记录工具,它提供了灵活的日志记录机制和高性能的日志记录能力。Slf4j 则是一个简单的日志记录门面,提供了统一的日志记录接口。今天,我们将...

    Log4j2使用案例

    **Log4j2使用案例** 在Java开发中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态、定位问题和进行性能分析。Log4j2作为Apache的一个顶级项目,是Log4j的升级版,提供了更高效、更灵活的日志处理能力...

    Log4j2使用教程

    **Log4j2使用教程** Log4j2是一款广泛应用于Java环境的日志记录框架,它在Log4j的基础上进行了性能优化和功能增强。本教程将详细介绍Log4j2的安装、配置以及如何在项目中使用它来记录日志信息。 **一、Log4j2的...

    log4j 2使用教程

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

    老生常谈Log4j和Log4j2的区别(推荐)

    然后使用Logger.getLogger()方法获取日志记录器,而Log4j2需要import org.apache.logging.log4j.Level、org.apache.logging.log4j.LogManager和org.apache.logging.log4j.Logger,使用LogManager.getLogger()方法...

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    对于使用Log4j2的若依框架或者其他任何依赖Log4j2的项目,升级到2.16.0或更高版本是至关重要的,因为不进行更新可能会使系统暴露在严重的安全风险之下。 在描述中,“若依框架”是一个基于Spring Boot的开源企业级...

    Log4j2简介及与Log4j效率对比

    9. **Layouts的广泛适用性**:Log4j2的Layouts不仅可以应用于使用`OutputStream`写入日志的Appender,还可以应用于所有类型的Appender。 10. **优化的并发支持**:Log4j2利用Java 5提供的并发特性,能够在较低级别...

    Java与log4j2整合mongoDB需要的jar包

    4. **编写代码**:在Java代码中,你需要按照正常的log4j2使用方式调用日志记录方法。Log4j2会根据配置自动将日志发送到MongoDB。 5. **测试和优化**:集成完成后,通过运行应用程序并查看MongoDB中的日志记录来验证...

    Log4j2异步写日志效率测试源码

    默认情况下,Log4j2使用同步模式记录日志,即每个日志事件都会阻塞直到写入完成。然而,通过启用异步日志模式,Log4j2会将日志事件放入一个队列,然后由一个单独的后台线程处理这些事件,从而避免了主线程的阻塞,...

    Log4j2、Fastjson、Log4j的BurpSuite插件亲测有效

    Log4j、Log4j2和Fastjson的安全性问题在过去曾引起广泛关注,例如Log4j2的CVE-2021-44228(也被称为Log4Shell漏洞),这是一个远程代码执行漏洞,影响了许多使用Log4j2的系统。这个插件可能就是为了检测和利用这些...

    logging-log4j2-log4j-2.15.0-rc2.zip maven 资源库

    针对Log4j 2 远程代码执行漏洞,需要用到的升级资源包,适用于maven资源库,包括log4j,log4j-core,log4j-api,log4j-1.2-api,log4j-jpa等全套2.15.0 maven资源库jar包。如果是maven本地仓库使用,需要将zip包解压...

    SpringBoot框架配置log4j和log4j2的配置代码

    Log4j和Log4j2是两种广泛使用的Java日志框架,它们提供了灵活的日志配置和高性能的日志处理能力。本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,...

    Log4j2学习log4j2.xml配置模板

    在使用 Log4j2 之前,需要在 Maven 项目中引入 Log4j2 的依赖。我们可以在 pom.xml 文件中添加以下依赖项: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-web &lt;groupId&gt;org....

    Log4j2学习用到的jar包及apache-log4j-2.19.0-bin.zip

    分别有disruptor-3.3.4.jar(Log4j2异步日志的底层实现)、log4j-api-2.19.0.jar(log4j门面)、log4j-core-2.19.0.jar(log4j实现)、log4j-slf4j-impl-2.19.0.jar(SLF4J与Log4j绑定)、slf4j-api-1.7.30.jar(SLF...

    使用log4j2实现日志数据脱敏

    Log4j2作为Java领域广泛使用的日志框架,提供了丰富的功能来满足这一需求。本文将详细介绍如何使用Log4j2实现日志数据脱敏。 一、Log4j2简介 Log4j2是Apache软件基金会开发的日志框架Log4j的升级版,它具有更高的...

    log4j2 -2.11.1.zip

    Log4j2使用XML、JSON或YAML格式的配置文件,使得日志配置更为直观和灵活。你可以根据需要设置不同级别的日志输出,如DEBUG、INFO、WARN、ERROR等,甚至可以为不同的类或方法定制日志级别。 4. **过滤器和Lookup**:...

    log4j2_detect_gui.zip

    为了应对这一挑战,开发者们推出了Log4j2检测工具,如"Log4j2_detect_gui.zip",本文将详细介绍这款工具的使用及Log4j漏洞的相关知识。 首先,我们要明白Log4j2Detect是一款用于检测Log4j漏洞的图形化界面工具,由...

    log4j2-2.3

    6. **事件数据结构**:Log4j2使用LogEvent对象封装日志信息,使其更易于处理和过滤。 7. **日志级别的优先级**:Log4j2允许设置每个Logger的优先级,便于控制日志输出的详细程度。 8. **自动重加载配置**:如果...

    log4j2漏洞检测工具

    Log4j2,一个广泛使用的Java日志框架,最近曝出的重大安全漏洞(CVE-2021-44228,被称为Log4Shell)引起了全球的关注。这个漏洞允许攻击者通过精心构造的日志输入执行远程代码,从而对系统造成严重威胁。为了解决这...

Global site tag (gtag.js) - Google Analytics