【问题标题】:how to implement profiles for log4j2 for spring 5如何为 spring 5 实现 log4j2 的配置文件
【发布时间】:2020-10-15 20:40:50
【问题描述】:

我想用 log4j2 配置文件实现 spring 5,例如 dev、qa 和 prod。

目前,这就是我使用 log4j2 运行 spring 5 的方式,我在命令行中加载 log4j2 属性

mvn tomcat8:run -Dlog4j.configurationFile=file:%path_to_log4j2_prop%/log4j2.properties

这是我的 log4j2 属性:

status = debug
name = PropertiesConfig
 
#Make sure to change log file path as per your need
property.environment=D:/WhiteCoats-New-Workspace/spring-5
property.servicesfilename = ${environment}/wc.out
 
filters = threshold
 
filter.threshold.type = ThresholdFilter
filter.threshold.level = debug
 
appenders = services
 
appender.services.type = RollingFile
appender.services.name = ServiceFile
appender.services.fileName = ${servicesfilename}
appender.services.filePattern = ${environment}/wc.out-%d{yyyy-MM-dd}-%i
appender.services.layout.type = PatternLayout
appender.services.layout.pattern = [ %d{yyyy-MMM-dd HH:mm:ss a} ] - [%t] %-5level %logger{36} - %msg%n
appender.services.policies.type = Policies
appender.services.policies.time.type = TimeBasedTriggeringPolicy
appender.services.policies.time.interval = 1
appender.services.policies.time.modulate = true
appender.services.policies.size.type = SizeBasedTriggeringPolicy
appender.services.policies.size.size=5MB
appender.services.strategy.type = DefaultRolloverStrategy
appender.services.strategy.max = 10

loggers = services
 
#services logs
 
logger.services.name = com.vm
logger.services.level = debug
logger.services.additivity = false
logger.services.appenderRef.services.ref = ServiceFile

rootLogger.level = info
rootLogger.appenderRef.stdout.ref = ServiceFile

在spring 3中,我使用了log4j并在web.xml中配置了路径。

我如何为 spring 5 实现 log4j2 的配置文件?

【问题讨论】:

    标签: java spring log4j2 spring5


    【解决方案1】:

    在 Spring Boot 中,如果您需要更改属性 log4j.configurationFile,在 application.yml 内非常简单。如果您使用配置文件,您可以定义默认值和覆盖值。例如:

    log4j:
        configurationFile: %path_to_log4j2_prop%
    ---
    spring:
        profiles: development
    log4j:
        configurationFile: %path_to_dev_log4j2_prop%
    ---
    spring:
        profiles: production
    log4j:
        configurationFile: %path_to_prod_log4j2_prop%
    

    如果您仅使用 Spring,则可以使用 @Configuration@Profile@PropertySource 根据您的配置文件加载不同的属性文件,并且在这些文件中您可以根据需要设置您的 log4j.configurationFile 属性.

    【讨论】:

    • 能否给出代码示例并仅解释弹簧。?
    • 检查here
    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 2014-10-18
    • 2020-01-07
    • 2014-06-05
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2019-08-31
    相关资源
    最近更新 更多