繁体   English   中英

如何在 logback-spring.xml 中的多个位置写入日志

[英]How to write logs at multiple location in logback-spring.xml

是否可以使用 logback-spring.xml 在多个位置创建日志? 我尝试这样做,但只要我给出两个位置,它就会在默认位置创建日志。 下面是提到的logback-spring.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="30 seconds">

    <property name="springAppName" value="app-name"/>
    <springProperty name="maxLogHistoryInDays" source="log.maxLogHistoryInDays"/>
    <springProperty name="logPath" source="log.path"/>
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d{dd MMM yyyy ;HH:mm:ss.SSS} %highlight(%level) [%thread] %property{HOSTNAME} ${springAppName:-} [%X{X-B3-TraceId}] 
                %logger{0}.%M\(%line\) - %msg%n
            </pattern>
        </encoder>
    </appender>
    <appender name="fileAppender"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logPath}/${springAppName}/application.log</file>
        <file>application.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>application_%d{yyyy-MM-dd}_%i.log</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>${maxLogHistoryInDays}</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>%d{dd MMM yyyy ;HH:mm:ss.SSS} %level [%thread] %property{HOSTNAME} ${springAppName:-} [%X{X-B3-TraceId}]
                %logger{0}.%M\(%line\) - %msg%n</pattern>
        </encoder>
    </appender>

    
    <root level="INFO">
        <appender-ref ref="consoleAppender" />
        <appender-ref ref="fileAppender" />
    </root>

</configuration>

当给定两个路径时,这里会在默认位置创建日志。 当只提到路径时,即第一个它工作正常,日志会在自定义位置创建。

不可能在同一个 appender 块中提供多个文件路径,但您可以通过在配置文件中添加多个 appender 块来做到这一点,例如 -

<appender name="fileAppender" ............>
<appender name="fileAppender1" ............>
.
.
<root level="INFO">
        <appender-ref ref="consoleAppender" />
        <appender-ref ref="fileAppender" />
        <appender-ref ref="fileAppender1" />
</root>

您可以在不同的 appender 块中提供不同的文件路径。 在做 se 时确保文件中没有冲突。 两者的日志文件名和滚动文件名必须不同。

<appender name="fileAppender"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>./application.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>application_%d{yyyy-MM-dd}_%i.log</fileNamePattern>
        <maxFileSize>10MB</maxFileSize>
        <maxHistory>1</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%d{dd MMM yyyy ;HH:mm:ss.SSS} %level [%thread] %property{HOSTNAME} ${springAppName:-} [%X{X-B3-TraceId}]
            %logger{0}.%M\(%line\) - %msg%n</pattern>
    </encoder>
</appender>
<appender name="fileAppender1"
          class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>./application1.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <fileNamePattern>application1_%d{yyyy-MM-dd}_%i.log</fileNamePattern>
        <maxFileSize>10MB</maxFileSize>
        <maxHistory>1</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%d{dd MMM yyyy ;HH:mm:ss.SSS} %level [%thread] %property{HOSTNAME} ${springAppName:-} [%X{X-B3-TraceId}]
            %logger{0}.%M\(%line\) - %msg%n</pattern>
    </encoder>
</appender>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM