Log4j,禁用依赖于环境的附加程序

来源:爱站网时间:2021-09-16编辑:网友分享
我希望拥有一个log4j.xml配置,并且能够在开发应用程序时登录到控制台。部署到环境后,我只想登录到文件附加器,而不要登录到控制台。怎么...

问题描述


我希望拥有一个log4j.xml配置,并且能够在开发应用程序时登录到控制台。部署到环境后,我只想登录到文件附加器,而不要登录到控制台。我该如何实现?

这是我当前的配置:







思路一:


开发和

生产环境的log4j配置文件,例如:

log4j-development.xml-用于开发环境
    log4j-production.xml-用于生产环境
  • 然后您的应用程序启动命令可以使参数指定log4j配置文件,例如java -Dlog4jconfig=log4j-development.xml -jar Application.jar
  • 您可以通过在代码中获取log4jconfig属性的值来配置log4j,例如System.getProperty("log4jconfig")

    该解决方案的优点如下:

    您可以独立指定记录器(开发中为ConsoleAppenderLogFileAppender,生产中仅为LogFileAppender)>

      您可以指定每个环境的日志记录级别(例如,生产环境中的error和开发环境中的debug)>
    • 您可以独立配置文件记录器,例如在生产中将日志保存X天(出于审计目的等),而在开发中仅保留一个日志文件,等等。
  • 该模式用于具有多个环境(开发,UAT,登台,生产等)的许多应用程序服务器中
  • [C0的示例

    log4j-development.xml

    [C0的示例

    
    
    

    使用附加程序的log4j-production.xml参数和
    JVM
    系统属性很容易做到。例如:

    然后在使用Threshold的产品上启动应用程序时>

    在本地启动时同时使用
    

    -Dmy.console.level=OFF-Dmy.console.level=ALL均为有效的log4j级别。

    使用Log4j2,您可以选择使用Java系统属性来切换附加器引用,如下所示:
    OFF

    (出于某种原因,必须在sys prop变量的默认值前面加上减号ALL

    从默认的“滚动文件”切换到控制台”

  • 思路二:


    JVM

    思路三:


    OFF

    上一篇:[在Studio.xml文件中添加工具栏时,Android Studio RecyclerView不会显示我的数据

    下一篇:如何提取动态广播的意图

    您可能感兴趣的文章

    相关阅读

    热门软件源码

    最新软件源码下载