相关疑难解决方法(0)

Log4J2 - 在运行时分配文件appender文件名

我在类路径中有一个log4j2.xml配置文件.其中一个appender是File appender,我想在Java应用程序中的运行时设置目标文件名.

根据文档,我应该能够在log4j2.xml文件中使用双"$"和上下文前缀:

<appenders>
    <File name="MyFile" fileName="$${sys:logFilename}">
        <PatternLayout pattern="%-4r %d{${datestamp}} [%t] %-5level %logger{36} - %msg%n"/>
    </File>
</appenders>
Run Code Online (Sandbox Code Playgroud)

其中"sys"前缀表示Configurator将在系统属性中查找属性"logFilename".所以在应用程序中,我打电话(相当早):

System.setProperty("logFilename", filename);
Run Code Online (Sandbox Code Playgroud)

我还在xml文件中打开了log4j2的自动重新配置:

<configuration status="debug" monitorInterval="5">>
Run Code Online (Sandbox Code Playgroud)

不幸的是,这没有任何效果,并且永远不会创建日志文件.一些log4j2状态输出如下:

2013-02-13 15:36:37,574 DEBUG在类org.apache.logging.log4j.core.appender.FileAppender上调用createAppender for element with params(fileName ="$ {sys:logFilename}",append ="null" ,locking ="null",name ="MyFile",immediateFlush ="null",suppressExceptions ="null",bufferedIO ="null",PatternLayout(% - 4r%d {yyyy-MM-dd/HH:mm:ss .SSS/zzz} [%t]%-5level%logger {36} - %msg%n),null)

2013-02-13 15:36:37,576 DEBUG启动FileManager $ {sys:logFilename}

如何在运行时设置File Appender中的"fileName"值? 或者,如何在运行时向根记录器添加新的File Appender?在Log4j 2.0中,大多数用于更改配置的API都是隐藏的.

java log4j log4j2

42
推荐指数
3
解决办法
3万
查看次数

如何以编程方式在运行时添加Log4J2 appender?

是否可以使用XML配置中的规范以编程方式添加Log4J2 appender?

我打算在log4j2.xml中定义它,然后像这样选择appender(不会编译):

if (arg[0].equals("log") ) {
    Logger.getLogger("loggerNameFromXMLConfig").addAppender("appenderNameFromXMLConfig");
} else {
    //...
}
Run Code Online (Sandbox Code Playgroud)

java logging log4j log4j2

33
推荐指数
3
解决办法
3万
查看次数

如何在log4j2中动态打开或关闭rootLogger的一个appender?

如何在运行时通过java在log4j2中动态打开或关闭rootLogger的一个appender?

例如,我想禁用Console Appender:

...
    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
...
Run Code Online (Sandbox Code Playgroud)

可能吗?

java log4j log4j2

13
推荐指数
1
解决办法
3716
查看次数

标签 统计

java ×3

log4j ×3

log4j2 ×3

logging ×1