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

Logback-布局模式中的自定义级别输入

袁华清
2023-03-14
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>

              <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
            </encoder>
    </appender>.

我正在努力实现这样的目标...

time  thread  |-**CUSTOMLOGLEVEL**  xyz.class - Message.

为什么?我想通过定义loglevel或其他一些指示符来轻松地过滤消息。

例如:搜索日志级别为“CustomLogLevel”的日志。是否有任何方法可以给出自定义日志级别或任何其他指示符,表明这是自定义生成的日志,而不是某个框架生成的日志。

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
         <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="com.logging.CustomLayout">
                             <param name="argument1" value="1" />
                             <param name="argument2" value="2" />

            </layout>
        </encoder>
    </appender>

但我不确定如何在外部输入这些参数。

如果我不清楚,请告诉我。

共有1个答案

周朗
2023-03-14

SLF4J/logback用一个叫做标记的特性解决了“我想做一些比日志级别更复杂的事情”的问题。

例如,将某些日志标记为“有趣”:

Marker interesting = MarkerFactory.getMarker("INTERESTING");
Logger logger = LoggerFactory.getLogger(getClass());
…
logger.info(interesting, "Something happened: {}", value)

在PatternLayout中,可以使用%marker记录与日志条目关联的标记。(请参阅文档中的%marker。)

 类似资料:
  • 有没有办法为不同的日志级别打印不同的布局?例如: 记录器。警告(“消息”);打印如下内容:2016-06-20 13:34:41245 INFO(main:)Message and for logger。信息(“消息2”);仅打印:消息2 有可能做到吗?定义一个布局以警告其他布局以获取信息 log4j.properties

  • 我正在使用PreferenceActivity设置我的应用程序。我想添加一个新的首选项,允许用户选择一个图标。对于这个任务,我想使用ListPreference,但我也想在列表中显示图标。 我尝试自定义List首选项以使用自定义布局,但问题是一旦我这样做了,列表项就不可单击(它确实显示了我的自定义布局并使用当前选择的默认值)。 我在不同的模拟器版本和银河S2上测试了它。当按下项目时,我可以看到一些

  • 但是,在Log4JV2中,PatternLayout类被设置为“final”,整个体系结构也被更改。似乎不再有一种简单的方法来拦截/覆盖对PatternLayout对象的调用。我查看了Apache文档,但没有太多信息。 我检查了这个问题和这个问题,但都没有太多的帮助。 我意识到这是一个非常“一般”的问题,但是有没有人知道在Log4j V2中实现这一点的简单方法,或者对此有什么建议?

  • 之所以使用Logback,是因为我们需要一些log4j没有提供的附加程序。 要求:对于日志级错误,我们希望使用自定义模式,它将根据堆栈跟踪添加信息。