首页 > 其他分享 >log4j 2异步日志

log4j 2异步日志

时间:2024-05-13 17:08:15浏览次数:17  
标签:异步 配置文件 记录 Log4j 日志 log4j

要在Log4j 2中启用异步日志收集,以防止日志打印操作阻塞应用线程。

可以通过配置文件来实现这一功能。

Log4j 2本身就支持异步日志记录,下面是使用Log4j 2配置文件(通常是log4j2.xml)来开启异步日志记录的一个示例:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <!-- 异步日志追加器 -->
        <Async name="AsyncFile">
            <AppenderRef ref="File"/>
        </Async>

        <!-- 文件日志追加器 -->
        <RollingFile name="File" fileName="logs/app.log"
                     filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>
    </Appenders>

    <Loggers>
        <!-- 设置根Logger级别,并引用上面定义的AsyncFile追加器 -->
        <Root level="info">
            <AppenderRef ref="AsyncFile"/>
        </Root>

        <!-- 其他Logger配置 -->
    </Loggers>
</Configuration>

关键点在于使用了<Async>标签包装了一个实际的日志输出Appender(在这个例子中是RollingFile)。

<Async>元素使得日志事件的处理异步进行,从而减少了日志写入磁盘对主线程的影响,提高了应用性能。

请注意,尽管异步日志可以提升性能,但在高并发环境下,仍需关注配置的合理性,避免因日志处理队列满而导致的日志丢失问题。

 

标签:异步,配置文件,记录,Log4j,日志,log4j
From: https://www.cnblogs.com/use-D/p/18189600

相关文章

  • go封装zap日志
    log.gopackagexlogimport( "context" "fmt" "os" "runtime/debug" "time" "go.uber.org/zap" "go.uber.org/zap/zapcore"rotatelogs"github.com/lestrrat-go/file-rotatelogs&qu......
  • C#异步与多线程
    c#的异步与多线程异步与多线程首先,异步是相对于同步的一个概念,在同步环境下,程序允许至某处需要等待的位置,会发生阻塞,直到达到条件才会继续向下运行;而异步操作则可以在需要等待的位置,跳过等待,执行其他内容,通常异步处理的事务不能相互存在影响。多线程指的是,同时使用多个线程执行......
  • 配置cisco asa 5525k9防火墙的日志保存到服务器
    配置ciscoasa5525k9防火墙的日志信息日志信息可以输出到LogBuffer(日志缓冲区)、ASDM和日志服务器。1.配置Logbuffer: loggingenable #启用日志功能 loggingbufferedinformational  #Cisco日志等级一共分为8级,0级最高,7级最低 showlogging  #查看LogBuff......
  • Kibana系列---【重新启动kibana后,访问一直显示:Kibana server is not ready yet,查看
    重新启动kibana后,访问一直显示:Kibanaserverisnotreadyyet,查看后台错误日志报master_not_discovered_exception1.问题描述我的kibana之前都是好的,我把es集群重启之后,再重启kibana,发现无法访问了,访问时一直报:Kibanaserverisnotreadyyet,查看服务器后台日志后发现报:m......
  • ASH日志报告详解
    本文转自:https://blog.csdn.net/cuiyan1982/article/details/778145341.ASH日志报告详解1.1ASH报告使用ash报告,在生成ash报告之后,可以重新检索哪些标识为短暂性能问题的信息。ash报告的内容分成了以下几个部分:topeventsloadprofiletopsqltoppl/sqltopjavatopses......
  • 详解Redis持久化(持久化高危漏洞利用与多种对抗方案、RDB、AOF、同步手动持久化、异步
    谨防持久化+未授权访问漏洞入侵服务器CVE编号找不到,CNVD有一个:CNVD-2015-07557(国家信息安全漏洞共享平台漏洞编号)。这是我之前写过的文章,漏洞成因、影响范围、POC与对抗方案有详解:谨防利用Redis未授权访问漏洞入侵服务器RDB(RedisDatabase、全量保存,默认方式)极简概括:通过符......
  • excel异步导出-通用-仅限单组数据导出
     支持单组数据(List<T>)异步导出,比如1000条数据,可以按100条数据一个sheet的形式,去异步写入10个sheet中,每个sheet有100条数据createPageExcel方法是通过HttpServletResponse直接响应给前端createPageExcelUrl是生成一个File,然后上传到OSS,获取到Url返回给前端,此方法中有redis和os......
  • springboot的链路日志
    1.背景在开发银行项目的时候有一个生成项目链路日志的需求。所谓的链路日志就是一个请求会经过多个项目的接口调用,它把这个请求内调用到的所有请求通过全局id串起来,通过全局id可以把所有涉及到的系统日志都快速的定位出来,方便线上出现问题时去排查问题。2.实现......
  • EasyLogger - 一款超轻量级、高性能的 C/C++ 日志库
    1、EasyLogger-一款超轻量级、高性能的C/C++日志库EasyLogger是一款超轻量级(ROM<1.6K,RAM<0.3K)、高性能的C/C++日志库,非常适合对资源敏感的软件项目,例如:IoT产品、可穿戴设备、智能家居等等。相比log4c、zlog这些知名的C/C++日志库,EasyLogger的功能更加简单,提供......
  • springboot使用log4j监控日志发送邮件
    实现log4j发送邮件功能大致流程:1、开启邮箱SMTP服务,获取SMTP登录密码2、引入javax.mail、javax.activation依赖3、配置log4j文件,指定邮件发送方和接收方以及发送方账号密码等4、重写SMTPAppender(不重写也能实现邮件发送功能)开启邮箱SMTP服务这里以qq邮......