log4j - 停止 log4j 登录到 syslog
问题描述
我正在尝试将 log4j2 配置为使用 Routing & RollingFile appenders 在多个文件中写入日志,到目前为止一切正常。但是,有一个不需要的副作用 - 它还会登录到 Linux 系统日志。有什么方法可以禁用登录系统日志?这是我的 log4j2.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<Configuration name="Staging" status="warn">
<Properties>
<Property name="pattern" value="%-5level [%d{DEFAULT}] %logger{30} %X %marker %msg%n"/>
<Property name="log-path" value="/var/log/application"/>
<Property name="file-size" value="200 MB"/>
<Property name="file-total" value="10"/>
</Properties>
<Appenders>
<RollingFile name="SESSIONS_APPENDER" fileName="${log-path}/sessions.log" filePattern="${log-path}/sessions-%i.log.gz" append="true">
<PatternLayout pattern="${pattern}"/>
<Policies>
<SizeBasedTriggeringPolicy size="${file-size}"/>
</Policies>
<DefaultRolloverStrategy max="${file-total}"/>
</RollingFile>
<RollingFile name="TRANSACTIONS_APPENDER" fileName="${log-path}/transactions.log" filePattern="${log-path}/transactions-%i.log.gz" append="true">
<PatternLayout pattern="${pattern}"/>
<Policies>
<SizeBasedTriggeringPolicy size="${file-size}"/>
</Policies>
<DefaultRolloverStrategy max="${file-total}"/>
</RollingFile>
<RollingFile name="STDROUT_APPENDER" fileName="${log-path}/stdrout.log" filePattern="${log-path}/stdrout-%i.log.gz" append="true">
<PatternLayout pattern="${pattern}"/>
<Policies>
<SizeBasedTriggeringPolicy size="${file-size}"/>
</Policies>
<DefaultRolloverStrategy max="${file-total}"/>
<!-- Filtering from the stdout log, lines that have their own custom appender -->
<Filters>
<MarkerFilter marker="TRANSACTION" onMatch="DENY" onMismatch="NEUTRAL"/>
<MarkerFilter marker="SESSION" onMatch="DENY" onMismatch="NEUTRAL"/>
</Filters>
</RollingFile>
<Routing>
<name>ROUTING_APPENDER</name>
<Routes>
<pattern>$${marker:}</pattern>
<!-- Default appender if no matching marker found -->
<Route ref="STDROUT_APPENDER"/>
<!-- Appender selection for specific marker -->
<Route key="TRANSACTION" ref="TRANSACTIONS_APPENDER"/>
<Route key="SESSION" ref="SESSIONS_APPENDER"/>
</Routes>
</Routing>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="STDROUT_APPENDER"/>
</Root>
<Logger name="com.application" level="info" additivity="false">
<AppenderRef ref="ROUTING_APPENDER"/>
</Logger>
<Logger name="org.apache" level="error">
<AppenderRef ref="STDROUT_APPENDER"/>
</Logger>
<Logger name="com.amazonaws" level="error">
<AppenderRef ref="STDROUT_APPENDER"/>
</Logger>
</Loggers>
</Configuration>
解决方案
推荐阅读
- angular-material-7 - 为什么 mat-sort 在我的 mat-table 上不起作用
- ios - 符合 Equatable for Diffing 的协议
- c++ - 我可以使用 STL 在 C++ 中创建图形吗?
- android - 是否有任何隐含意图的解决方案不适用于某些设备
- node.js - 如何将 GraphQL 模式转换为 JSON 并最好地转换为 GraphQL 模式?
- swiftui - 如何在 SwiftUI 中创建单选按钮?
- flutter - 使用导航抽屉时仅在主页上显示工具栏菜单
- java - 从不同的活动调用相同的方法
- php - 删除产品 url 在 Laravel 中不起作用
- python - 如何在 plot.bar() 中绘制 3 个或更多值