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

Logback是否可以读取记录器参数?

彭鸿文
2023-03-14
logger.error("A new error occured with a param", 1);
11:22:17.678 [main] ERROR c.j.example.logbackmavenexample.App - A new error occured with a param - 1
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- System.out Appender -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
        </encoder>
    </appender>

   <appender name="debugFile" class="ch.qos.logback.core.FileAppender">
        <file>/Users/henriqueferreira/Desktop/separate-log/debug.log</file>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n%ex{full}</pattern>
        </encoder>
   </appender>

   <appender name="errorFile" class="ch.qos.logback.core.FileAppender">
      <File>/Users/henriqueferreira/Desktop/separate-log/error.log</File>
           <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
           </filter>
      <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n%ex{full}</pattern>
      </encoder>
    </appender>

    <root level="DEBUG"><!-- Using the lowest level here -->
      <appender-ref ref="debugFile" />
      <appender-ref ref="errorFile" />
    </root>
</configuration>

共有1个答案

卫鸿朗
2023-03-14

多亏了@Bentaye,我才找到了答案。基本上,我可以传递一个标记,而不是将整数作为参数传递:

Marker interesting = MarkerFactory.getMarker("INTERESTING");
logger.debug(interesting, "something happened");

它会按照我的要求记录:

12:37:59.060 [main] DEBUG c.j.example.logbackmavenexample.App - INTERESTING - something happened

我只需在logback.xml文件中以该文件的模式添加%marker:

<encoder>
    <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %marker - %msg%n%ex{full}</pattern>
</encoder>
 类似资料:
  • 问题内容: 我想在我的应用程序中将slf4j + logback用于两个目的-日志和审计。 对于日志记录,我以常规方式记录日志: 对于审计,我创建一个特殊的命名记录器并登录到它: 登录配置: 问题:通过审核记录器记录的消息出现两次-一次在AUDIT_LOGGER下,一次在根记录器下。 14:41:57.975 [main]调试com.gammay.example.Main–> main() 14:

  • 问题内容: 具体来说,问题是编写这样的方法: 如果数据在“超时”毫秒内可用,则返回值与in.read()相同,否则为-2。在方法返回之前,所有产生的线程必须退出。 为避免自变量,此处的主题为java.io.InputStream,如Sun(任何Java版本)所记录。请注意,这并不像看起来那么简单。以下是Sun的文档直接支持的一些事实。 in.read()方法可能是不可中断的。 将InputStre

  • 是否可以同时从套接字读取和写入?我有一个连续读取套接字的线程。由于只有一个线程从套接字读取,因此读取操作是线程安全的。现在我有很多线程(比如 100 个)写入套接字。因此,很明显,我必须通过做这样的事情来使写入操作线程安全, 现在我有一个线程不断调用readMessage()函数(在while循环中)。据我所知,如果套接字上没有要读取的消息,语句< code > inputstream . rea

  • 附加器 和3个记录器: 记录器1 null

  • 我正在使用回溯与SpringJdbc模板来记录我的SQL查询。我的配置包含下一行: 但是这个日志只使用通配符查询没有参数列表。 在SO上,我找到了一些如何使用log4j实现参数日志记录的答案。但我不想切换到log4j。 那么,我如何接收带有Logback的JdbcTemplate的参数列表呢? 编辑 实际上,如果重要的话,我正在使用。

  • 我有一个小项目要将数据写入Ntag 213、215和216。 我成功地使用MifareUltraLight方法写入数据。问题是当我使用 NfcTools 扫描时,数据格式与我预期的不同。 这是我期望的格式。 这是我得到的格式。 我希望当Ntag扫描时,如果没有安装应用程序,它会打开浏览器。 我使用Mi的方法,因为N标签将受密码保护。我尝试了两种不同的方式来写入数据。 > 我使用命令N瘤手动处理写入