首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4j2异步日志记录设置

log4j2异步日志记录设置
EN

Stack Overflow用户
提问于 2018-08-24 04:53:56
回答 1查看 164关注 0票数 0

我将日志记录从同步更改为异步,但我不确定如何在其上设置策略。我要将我的同步日志记录设置应用于异步日志记录。请看下面的内容。

代码语言:javascript
复制
// I switched from this 

<RollingFile name="fileLogger" fileName="${logPath}/log.log"
                 filePattern="${logPath}/log-%d{yyyy-MM-dd-hh}-%i.log">
        <PatternLayout>
            pattern="${logPattern}"/>
        </PatternLayout>
        <Policies>
            <OnStartupTriggeringPolicy/>
            <SizeBasedTriggeringPolicy size="10 MB"/>
        </Policies>
        <DefaultRolloverStrategy max="5"/>
    </RollingFile>
</Appenders>    

代码语言:javascript
复制
//to this 

<File name="prodLog" fileName="${logPath}/log.log">
        <PatternLayout
                pattern="${logPattern}"/>
    </File>
    <Async name="asyncLogger" includeLocation="true">
        <AppenderRef ref="prodLog"/>
        <ArrayBlockingQueue/>
    </Async>
EN

回答 1

Stack Overflow用户

发布于 2018-08-24 05:52:29

我认为您不能对文件附加器使用相同的策略。要实现滚动文件的异步行为,可以使用RollingRandomAccessFile,如下例所示:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="debug">
    <Appenders>
        <Console name="Console-Appender" target="SYSTEM_OUT">
            <PatternLayout>
                <pattern>
                    [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
                </pattern>>
            </PatternLayout>
        </Console>
        <RollingRandomAccessFile name="Rolling-Random-Access-File-Appender"
                                 fileName="logs/rollingrandomaccessfile.log"
                                 filePattern="archive/logs/rollingrandomaccessfile.log.%d{yyyy-MM-dd-hh-mm}.gz">
            <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="1 KB"/>
            </Policies>
            <DefaultRolloverStrategy max="30"/>
        </RollingRandomAccessFile>

    </Appenders>
    <Loggers>
        <AsyncLogger  name="guru.springframework.blog.log4j2async" level="debug">
            <AppenderRef ref="Rolling-Random-Access-File-Appender"/>
        </AsyncLogger>
        <Root level="debug">
            <AppenderRef ref="Console-Appender"/>
        </Root>
    </Loggers>
</Configuration>

在这篇文章中有更多关于这方面的内容:https://springframework.guru/asynchronous-logging-with-log4j-2/

问候

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51994120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档