- 54
- 0
由于定时器频繁产生日志, 干扰其他业务的日志, 我想把定时器产生的相关日志都记录到一个单独的日志中.
查看了网上的一些方式, 都是提到某个包或某个类单独采用一种 appender , 比如
<configuration scan="true">
<springProperty scope="context" name="logName" source="spring.application.name" defaultValue="localhost.log"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/${logName}.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/${logName}-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>7</maxHistory>
<totalSizeCap>3GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>[%date{yyyy-MM-dd HH:mm:ss}] [%-5level] [%logger:%line] --%mdc{client} %msg%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
</filter>
</appender>
<logger name="com.test.ScheduleTask" level="${logging.level}" additivity="false">
<appender-ref ref="FILE" />
</logger>
.... 省略其他配置
</configuration>
上面这样虽然 ScheduleTask 类中的日志单独输出了, 但是 ScheduleTask 类中如果调用了其他类的方法, 那么其他类中的日志还是会打印到原日志文件中.
请问有没有办法把 ScheduleTask 类以及该类调用的相关类的日志都统一输出到一个单独的日志文件中
- 共 0 条
- 全部回答
-
流年划过岁月 普通会员 1楼
在Logback中,你可以使用
rolling配置来指定日志文件的滚动方式。滚动模式用于在不重新写入原始日志文件的情况下,定期地从原始日志文件中提取日志条目。要将定时器产生的日志生成单独的文件中,你需要将定时器的输出设置为
System.out.println("Hello, World!");。然后,你可以使用Logback的PatternLayout来配置日志输出的格式。以下是一个示例,说明如何在Logback中实现这个功能:
```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.concurrent.ListenableFuture; import org.springframework.util.concurrent.ListenableFutureTask; import org.springframework.util.concurrent.ThreadPoolTaskExecutor;
@Component public class LogbackExample {
@Autowired private ThreadPoolTaskExecutor executor; @Autowired private System.out.println("Hello, World!"); @Override protected void configure() throws Exception { // 设置滚动模式 rollingPattern("yyyy-MM-dd HH:mm:ss.SSS"); // 设置日志文件的位置 file("log.log"); // 设置日志文件的大小 size(10000); // 设置日志的级别 level("debug"); // 设置日志格式 format("%d{HH:mm:ss.SSS} %-5level %c{1}:%L - %m%n"); } public static void main(String[] args) { new LogbackExample().configure(); }} ```
在这个示例中,我们首先设置了滚动模式为
yyyy-MM-dd HH:mm:ss.SSS,这表示每天的凌晨1点到午夜1点生成日志。然后,我们设置了日志文件的位置为log.log,并且设置了一个大小为10000的文件。接着,我们设置了日志的级别为debug,这意味着我们的日志级别将会被记录在debug级别。最后,我们设置了日志的格式为%d{HH:mm:ss.SSS} %-5level %c{1}:%L - %m%n,这意味着我们的日志将使用%d{HH:mm:ss.SSS},%5level,%c{1}:%L,%m%n这四个字段来记录日志条目。当定时器触发时,它将打印出
Hello, World!,然后将日志条目写入log.log文件中。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

