有没有办法覆盖日志回溯配置?我知道我们在名为 logback 的文件中定义了日志回退配置.xml
(通常存储在路径 src/main/resources
中),并且我知道通过使用
<configuration>
<!--<include url="file:///d:/ServerConfig.xml"/>-->
<include file="${outPut}/ServerConfig.xml"/>
<logger name="Server" LEVEL="DEBUG">
<appender-ref ref="FILEOUT" />
</logger>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
<!--<appender-ref ref="FILEOUT" />-->
</root>
</configuration>
但是,如果我想覆盖此默认配置,该怎么办?例如,将根记录器级别设置为 INFO。
以下是包含的文件:
<included>
<!-- <property file="d:/ServerSysVar.properties"/>-->
<property file="${outPut}/ServerSysVar.properties"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILEOUT" class="ch.qos.logback.core.FileAppender">
<file>${Sys_Location}/Serverfile4.log</file>
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} %class{36}.%M %L CLIENT_PORT:%X{ClientPort}- %msg%n</pattern>
</encoder>
</appender>
<logger name="Service" LEVEL="DEBUG">
<appender-ref ref="FILEOUT" />
</logger>
<root>
<appender-ref ref="STDOUT" />
<!-- <appender-ref ref="FILEOUT" />-->
</root>
</included>
我有一个类似的问题,这个答案似乎是最好的方法。
就我而言,我需要覆盖包含的文件以完全关闭其中一个附加程序。
使用a变量作为日志级别值,可以将其更改为OFF。
<included>
(...)
<root level="${root.level.console:-DEBUG}">
<appender-ref ref="CONSOLE" />
</root>
<root level="${root.level.file:-DEBUG}">
<appender-ref ref="FILE" />
</root>
</included>
如http://logback.qos.ch/manual/configuration.html#rootElement所述
<configuration>
<include resource="base.xml" />
(...)
<property name="root.level.console" value="OFF" />
</configuration>
我不认为您可以从包含的文件中覆盖logback.xml
-定义。
但是我有一种方法可以解决您关于覆盖根记录器级别,使用默认值的变量替换的问题:
logback.xml
<configuration>
<include file="includedFile.xml" />
<!-- STDOUT appender stuff -->
<root level="${root.level:-DEBUG}">
<appender-ref ref="STDOUT" />
</root>
<configuration>
includedFile.xml
<included>
<!-- override the default value; or comment out to leave it at default -->
<property name="root.level" value="INFO" />
</included>
有了这个概念,我甚至能够控制从包含的文件到多个追加器的输出:
logback.xml
<configuration>
<include file="includedFile.xml" />
<!-- STDOUT appender stuff -->
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${file.level:-ALL}</level>
</filter>
<file>/path/to/logfeil.log</file>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>${syslog.level:-OFF}</level>
</filter>
<syslogHost>localhost</syslogHost>
<facility>${syslog.facility:-LOCAL1}</facility>
<suffixPattern>${syslog.pattern:-[%thread] %logger{36} - %msg}</suffixPattern>
</appender>
<logger name="my.package" level="${logging.level:-INFO}" additivity="false">
<appender-ref ref="FILE" />
<appender-ref ref="SYSLOG" />
</logger>
<root level="${root.level:-DEBUG}">
<appender-ref ref="STDOUT" />
</root>
<configuration>
在includedFile.xml
中,我可以控制消息是否以及在什么级别通过附加程序FILE
和SYSLOG
,设置属性file.level
、syslog.level
,当然还有logging.level
。
在我的应用程序的logback.xml中,我有一个AsyncAppender定义如下。 当我在Windows10上部署Tomcat中的war时。 null 请各位专家告诉我,我在这里做错了什么?AsyncAppender是否有其他属性可以帮助修复此行为?
我在SpringBoot中使用logback,但无法删除旧的日志文件。 我在logback-spring.xml文件中定义了以下appender: 即使我设置了“MaxHistory”和“CleanHistoryonStart”,超过10天的日志文件也不会被删除。既不是翻转也不是启动。
有人知道如何在Dropwizard框架中启用debug以进行登录吗?以下是版本信息: DropWizard:3.1.2登录:1.1.7
web3.eth.getPastLogs()方法根据指定的选项返回历史日志。 调用: web3.eth.getPastLogs(options [, callback]) 参数: options:Object - 过滤器对象,包含如下字段: fromBlock - Number|String: The number of the earliest block ("latest" may be g
我支持使用logback生成日志文件的解决方案。问题是生成的日志文件创建得太快,以至于它们填满了硬盘驱动器,导致系统崩溃。 当分析创建的日志文件时,我们可以看到它们的大小为5MB,当它们翻转到下一个日志文件时,下一个日志文件是与上一个日志文件相同的数据,只添加了15-20条跟踪线,然后它将以相同的格式创建下一个日志文件,并以快速的速度继续。有人见过使用logback的这种行为吗?问题在于Esuit
我知道通过配置服务器和刷新endpoint,可以在Spring启动应用程序中动态更改日志记录级别。为了控制日志轮换策略和文件的json编码,我决定使用logback。但是这会阻止我动态更改日志记录级别。 这意味着只有信息会被写入控制台/文件。但是如果我想在运行时将其更改为调试/跟踪怎么办? 编辑我仍然不理解根级别标记。但是,logback似乎从应用程序获取了日志级别。属性,这基本上回答了我的问题。