spring-boot - 带有 Logback 的 Spring Boot Logger - 用于不同包的 2 个不同文件
问题描述
我已阅读有关它的所有相关问题,但没有运气。我需要将标准应用程序日志从另一个数据流中分离出来,所以我以这种方式定义了一个 logback 配置。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOGS" value="./log" />
<appender name="Console"
class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>
%black(%d{ISO8601}) %highlight(%-5level) [%blue(%t)] %yellow(%C{1.}): %msg%n%throwable
</Pattern>
</layout>
</appender>
<appender name="standardFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS}/log.log</file>
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36}:%L - %msg%n</Pattern>
</encoder>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily and when the file reaches 10 MegaBytes -->
<fileNamePattern>${LOGS}/archived/spring-boot-logger-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<appender name="specialFile"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS}/special</file>
<encoder
class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{YYYY-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36}:%L - %msg%n</Pattern>
</encoder>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily and when the file reaches 10 MegaBytes -->
<fileNamePattern>${LOGS}/archived/special-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<!-- Standard LOG file -->
<logger name="com.app" level="debug"
additivity="false">
<appender-ref ref="standardFile" />
<appender-ref ref="Console" />
</logger>
<!-- REMOVE SPECIAL-->
<logger
name="com.app.special" level="OFF"
additivity="false">
<appender-ref ref="standardFile" />
<appender-ref ref="Console" />
</logger>
<!-- SPECIAL LOGGER -->
<logger
name="com.app.special" level="debug"
>
<appender-ref ref="specialFile" />
<appender-ref ref="Console" />
</logger>
</configuration>
使用此配置,我读取标准文件上的所有日志和特殊文件上的特殊日志。我只想阅读特殊文件上的特殊日志
什么是正确的配置?
解决方案
推荐阅读
- visual-studio - 使用团队资源管理器插件安装 vsix 扩展时,VS17 团队资源管理器项目下拉部分消失
- java - 如何获取有关 Arraylist 索引的整数值
- javascript - 表格更改时,SlickGrid DataView syncGridSelection 不会删除旧选择
- azure - Terraform azurerm_virtual_machine_extension
- java - 使用特定注解解析 Java 枚举文件
- pyspark - 使用 oozie 工作流运行 pyspark 时出现 Hive 外部目录错误
- react-native - 如何在 react-native-maps 中刷新地图?
- javascript - 在选中的单选和复选框按钮上触发动画
- azure-active-directory - 有没有办法绕过 Azure 应用程序上的身份验证
- laravel - Laravel Dingo API 不返回 UTF8 编码字符