log4j:仅在设置了环境变量时创建日志文件

ohfgkhjo  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(97)

我有一个log4j文件,我在其中创建了一个新的日志文件。但是,我希望只有在设置了特定的环境变量(FEATURE_FLAG)时才创建这个文件。否则,我根本不希望创建日志文件。
我稍微查了一下,并在log4jxml文件中编写了以下过滤器:

<logger name="MyLogger" level="INFO" additivity="false">
        <AppenderRef ref="MyLogger">
        <ScriptFilter onMatch="ACCEPT" onMisMatch="DENY">
      <Script language="groovy"><![CDATA[
         return System.getProperty("FEATURE_FLAG", "0").equalsIgnoreCase("0");
      ]]></Script>
    </ScriptFilter>
    </AppenderRef>
    </logger>

然而,当我运行这个程序时,我仍然看到日志文件被创建了,尽管如果FEATURE_FLAG没有被设置为0的话,日志文件中没有写入任何内容。
我想要的是:如果未启用FEATURE_FLAG,则甚至不应创建该文件。
请建议. TIA. Omi

p5fdfcr1

p5fdfcr11#

您似乎愿意设置系统属性FEATURE_FLAG来打开/关闭日志记录。
如何使用系统属性log4j2.configurationFile(见文档)?然后你可以有多个配置文件。其中一个没有FileAppender的文件肯定不会创建任何日志文件。此外,你仍然有机会发送消息到例如stdout或通过网络。

相关问题