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

使用log4j2在Spring Boot中自定义日志级别

公西嘉玉
2023-03-14
 <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-log4j2</artifactId>
 </dependency>
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
<?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN">
        <CustomLevels>
            <CustomLevel name="BUSINESS" intLevel="850" />
        </CustomLevels>
    </Configuration>
private static final Logger LOGGER = LogManager.getLogger(UserStreamApplication.class);
 ....
LOGGER.log(Level.forName("BUSINESS", 850), "mystreamFunction called by user"+ uid);

共有1个答案

傅明知
2023-03-14

第1项看起来是正确的,但如果日志配置将位于名为log4j2.xml的应用程序内部,则不需要将logging.config添加到配置中。如果这样做,则应该使用类路径url引用它,如logging.config:classpath:log4j2-myapp.xml中所示。

对于项目2,您没有指定要将其记录到的位置。最简单的配置是

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <CustomLevels>
      <CustomLevel name="BUSINESS" intLevel="850" />
    </CustomLevels>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="error">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>
</Configuration>

您编码的日志看起来是正确的。这就是说,“业务”对于级别来说是一个奇怪的名称,因为级别通常代表事件的相对重要性。商业听起来更像是一个可以跨多个层面应用的标记。

 类似资料:
  • 根记录器配置为级别的同步记录器。我还有几个异步记录器。其中一个异步记录器配置在自定义的较高日志级别(789)。这高于级别(600)。 这样做的原因是有一个日志级别,可以用于通过异步记录器及其自己的附加程序记录的特殊事件。 我们不希望将事件发送给同步根记录器或其他记录器。。但仅限于异步记录器及其相应的附加程序。。可能吗?

  • 我的数据库中没有插入任何内容。所以我的第一个问题是为什么它不工作,请给我任何解决办法,如果可能的话。 另一个问题是,我将的intLevel调整为10,如下所示: 而现在它正在插入数据库,但也抛出了一些错误。 如有任何帮助,我们将不胜感激,并提前向您表示感谢。

  • 我有这些具体要求: 需要能够登录致命级别 现在,我的实现如下: 这是我的模式布局(在yaml): 以下是我的日志输出: 你知道如何有效地从日志输出中删除“错误”吗? 非常感谢你

  • 我有log4j2.xml,它部分配置为: 但是,跟踪消息并不存在于两个文件附加符(fileinfo/filedebug)中。当我更改FileDebug log level=“TRACE”时,就会出现跟踪消息。

  • 我有一个要求,其中写入日志文件的日志条目需要具有特定格式。 例如: 2016-01-28 21:42:48,399 INFO field d1: value e1;字段2: value e2;字段3: value e3;字段4: value e4 我们正在使用日志返回进行日志记录。字段的值存储在 java 对象中。有关如何使用自定义附加器/布局或任何其他方法实现这一点的任何建议或指针都将有很大的帮

  • 使用log4j1,我能够控制单个日志记录程序级别,但属性语句似乎不能使用log4j2。我将rootLogger级别设置为DEBUG,并希望通过commons-logging抑制来自authorize.NET的大量调试日志。我正在尝试设置级别,以从http头和有线日志发出警告。 下面是详细配置记录器的log4j文档(参见“配置log4j”) 这是一个示例日志输出: 这是我当前的log4j2.prop