当前位置: 首页 > 知识库问答 >
问题:

带Logback的日志中的线程名不可读

百里伟
2023-03-14
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <property name="LOGS" value="./logs" />

    <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="RollingFile"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOGS}/logger.log</file>
        <encoder
                class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <charset>UTF-8</charset>
            <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
        </encoder>

        <rollingPolicy
                class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily and when the file reaches 10 MegaBytes -->
            <fileNamePattern>${LOGS}/archived/logger-%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

    <!-- LOG everything at INFO level -->
    <root level="info">
        <appender-ref ref="RollingFile" />
        <appender-ref ref="Console" />
    </root>
</configuration>
2020-07-06 10:24:02,276 INFO  [restartedMain] org.springframework.boot.SpringApplication: No active profile set, falling back to default profiles: default
2020-07-06 10:24:24,604 INFO  [Áèáëèîòåêà èãð Google Play Telegram Executor] ru.miroha.bot.GooglePlayGameBot: Hello, Test!
2020-07-06 10:22:00.418  INFO 6796 --- [legram Executor] ru.miroha.bot.GooglePlayGameBot          : Hello!

共有1个答案

柳涵意
2023-03-14

编码文本来自配置中的%c{1.}。也许对象的调用者有意混淆了类名?类是否从库中调用该行?

是否需要调用方日志记录深度?与%c{0}相反的要记录的调用方?

有关调用方日志记录的更多信息:http://logback.qos.ch/manual/layouts.html

 类似资料:
  • 我最近将应用程序从log4j更改为logback/slf4j。一切都工作得很好,但我想实现一些具体的东西。 我正在开发的应用程序是一个web应用程序。在我们的生产环境中,日志级别是on info。不时有票进来让我们的服务团队处理。如果我们的服务团队在复制票据时,他们可以将日志级别放在跟踪上,只用于他们的测试请求,那就太好了。这样,日志文件就不会随着当时所有其他请求的到来而被修改。 我们已经使用标头

  • 正如logback的文档所说,大多数appender本质上是同步的,但是如果我们将appender包装在异步appender中,那么线程将把数据推送到BlockingQueue中,如果有,比如说X-logback线程将从BlockingQueue获取数据并将其追加。这就是我对它的基本理解。 尝试使用JstackThread转储来测试这个。但是空手返回,没有回退线程的线索。 作为参考,请检查下面lo

  • 我在记录调用类的类名时遇到问题。我在logback中编写了日志实用程序类。出于性能原因,我使用单例模式创建了记录器实用程序。但是,当我从其他类调用日志语句时,我会打印实用工具的类名,而不是调用类。 测试课就像 我得到的输出如下打印而不是LogUtilTest,我需要帮助记录我的调用类名 2014-04-14 16:47:21信息[main]MyModule[LogUtil.info:42]类名[c

  • 问题内容: 我有一个带有log4j的Struts应用程序,用于显示有关应用程序的信息。 格式化日志输出的模式如下: 我需要在日志中显示 线程ID 而不是 线程名称 。显示线程名称的转换字符为%t。我没有在log4j文档中看到获得它的方法。 谁能帮我?? 问题答案: 这是可能的,但并不像仅使用一些预配置的模式那样容易。 Log4j 1.X和Log4j 2.x没有用于打印线程ID的任何预配置模式,但是

  • 我知道和都在/usr/local/Spark/jars中,尽管在pom.xml中排除了这些jar,但Spark很可能引用了这些jar,因为如果删除它们,在spark-submit的运行时会给出一个ClassNotFoundException。 我的问题是:有没有一种方法可以在我的应用程序中使用Logback实现本机日志记录,同时保留Spark的内部日志记录功能。理想情况下,我希望将我的日志返回应用

  • 我有一个多线程Java应用程序,每个线程都是一个扩展基类的类。其中一个线程偶尔会给基类中的一个方法大量机器生成的数据,而其他线程只给出少量的人类类型数据。我想在比机器数据更高的日志级别上记录这些人类类型的消息,但是由于基类是所有线程的一部分,我无法在代码中区分出来。 一种解决方案是通知扩展类中的基类在不同的级别上登录,但是我必须将这些知识硬编码到应用程序中,这很难看。 我想做的是通过我的logba