use*_*074 7 logback logback-groovy
有没有办法设置单个目标文件夹,这样我可以指定应该创建所有日志文件的位置,而不是必须通过appender基于appender设置它?
And*_*sne 10
您可以在logback配置文件中定义属性,并使用它,如下所示
<configuration>
<property name="USER_HOME" value="/home/sebastien" />
<appender name="SPRING_LOGS" class="ch.qos.logback.core.FileAppender">
<file>${USER_HOME}/spring.log</file>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${USER_HOME}/myApp.log</file>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
</root>
</configuration>
Run Code Online (Sandbox Code Playgroud)
请注意,logback也可以从系统属性或单独的属性文件中读取变量.请按照手册了解更多详细信息.
我浪费了很多时间来配置Logback以与Spring Boot一起工作,我想分享我的配置,希望避免其他人浪费时间。
我的示例与上面的 Andy Dufresne 相似,只有一个关键区别 - 没有<property>标签。这在我的情况下非常重要,因为如果您包含 ,<property name="logs_dir" value="." />您将无法使用系统属性覆盖它,我想这样做:
java -jar -Dlogs_dir=~/newLogsDir yourApp.jar
Run Code Online (Sandbox Code Playgroud)
另请注意,默认值设置在路径变量 - 中${logs_dir:-.}。希望这可以帮助:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%-20(%d{yyyy-MM-dd HH:mm:ss} %highlight([%-5level])) %msg%n</pattern>
</encoder>
</appender>
<appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${logs_dir:-.}/system.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover monthly -->
<fileNamePattern>system-%d{yyyy-MM}.log.zip</fileNamePattern>
<maxHistory>12</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%-26(%d [%-5level]) %logger{35} - %msg%n</pattern>
</encoder>
</appender>
</configuration>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16299 次 |
| 最近记录: |