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

log4j2 Async appender仅适用于调试级别

刘向阳
2023-03-14

我有一个Async appender,仅在我设置级别=调试时才有效。对于“错误”级别,它不会记录任何内容。

<Configuration packages="com.custom.appender">
<Appenders>
<CustomLogger name="customLogger"/>
<Async name="customAsync" bufferSize="2" includeLocation="flase">
    <AppenderRef ref="customLogger"/>
</Async>
</Appenders>
<Loggers>
<logger name="com.mypackage" level="error">
    <AppenderRef ref="customAsync"/>
</logger>
</Loggers>
</Configuration>

我不确定这个配置中缺少了什么。这是我正在尝试使用的自定义appender

package com.custom.appender
@Plugin(name = "CustomLogger", category = "Core", elementType = "appender",   printObject = true)
public class CustomLogger extends AbstractAppender {

private static volatile CustomLogger instance;

public CustomLogger(final String name, final Filter filter,
        final Layout<? extends Serializable> layout) {
    super(name, filter, layout);
}

@PluginFactory
public static CustomLogger createAppender(
        @PluginAttribute("name") String name,
        @PluginAttribute("ignoreExceptions") boolean ignoreExceptions,
        @PluginElement("Layout") Layout layout,
        @PluginElement("Filters") Filter filter) {
    if (layout == null) {
        layout = PatternLayout.createDefaultLayout();
    }

    instance = new CustomLogger(name, filter, layout);
    return instance;
}

public static CustomLogger getInstance() {
    return instance;
}

@Override
public void append(LogEvent event) {
    //Log the event to mongoDB
}

}

共有1个答案

关玄裳
2023-03-14

尝试以下操作

<Configuration packages="com.custom.appender">
    <Appenders>
        <Async name="customAsync" bufferSize="2" includeLocation="flase">
            <AppenderRef ref="customConsoleLogger"/>
        </Async>
        <Console name="customConsoleLogger" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </Appenders>

    <Loggers>
        <Logger name="com.mypackage" level="INFO">
            <AppenderRef ref="customAsync"/>
        </Logger>
    </Loggers>
</Configuration>
 类似资料:
  • Navicat 提供两款代码调试器:“Oracle PL/SQL 调试器”和“PostgreSQL PL/pgSQL 调试器”。使用调试器,你可以切换断点,获取调用堆栈,查看变量值,追踪代码等。

  • Navicat 提供两款代码调试器:“Oracle PL/SQL 调试器”和“PostgreSQL PL/pgSQL 调试器”。使用调试器,你可以切换断点,获取调用堆栈,查看变量值,追踪代码等。

  • Navicat 提供两款代码调试器:“Oracle PL/SQL 调试器”和“PostgreSQL PL/pgSQL 调试器”。使用调试器,你可以切换断点,获取调用堆栈,查看变量值,追踪代码等。

  • 我有一个带有ListView的FutureBuilder来显示自定义项(小部件),其值是从。txt文件中读取的。 问题是,只有当我在调试模式或运行模式下启动应用程序时,这些项才会显示。当我试图用AppLauncher打开应用程序时(就像“普通”用户会这样做一样),listView是空的。我在一个AVD和一个“真正的”设备上试过这个。

  • 若要调试 Oracle 查询,请在工具栏点击 “调试”来启动 Oracle 调试器。 如果查询设有输入参数,请先输入参数。

  • 若要调试 Oracle 查询,请在工具栏点击 来启动 Oracle 调试器。 如果查询设有输入参数,请先输入参数。