程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了spring boot,logback和logging.config属性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决spring boot,logBACk和logging.config属性?

开发过程中遇到spring boot,logBACk和logging.config属性的问题如何解决?下面主要结合日常开发的经验,给出你关于spring boot,logBACk和logging.config属性的解决方法建议,希望对你解决spring boot,logBACk和logging.config属性有所启发或帮助;

我找到了解决方案,并且理解了为什么spring不使用application.propertIEs文件中定义的’logging.config’属性。

解决方案和说明:

初始化日志记录时,spring boot仅查找classpath或环境变量。

我使用的解决方案是包括一个父logBACk.xml文件,该文件根据spring概要文件包含了正确的日志记录配置文件。

logBACk.xml:

<configuration>
    <include resource="logBACk-${spring.profiles.activE}.xml"/>
</configuration>

logBACk- [profile] .xml(在本例中为logBACk-dev.xml):

<included>

    <!-- put your appenders -->
    <appender name="CONSolE" class="ch.qos.logBACk.core.ConsoleAppender">
    <!-- encoders are assigned the type
     ch.qos.logBACk.classic.encoder.PatternLayoutEncoder by default -->
       <encoder>
           <pattern>%d{ISO8601} %p %t %c{0}.%M - %m%n</pattern>
           <charset>utf8</charset>
        </encoder>
    </appender>

    <!-- put your loggers here -->
    <logger name="org.springframework.web" additivity="false" level="INFO">
        <appender-ref ref="CONSolE" />
    </logger>

    <!-- put your root here -->
    <root level="warn">
        <appender-ref ref="CONSolE" />
    </root>

</included>

注意: 启动应用程序时,必须在命令行参数中设置“ spring.profiles.active”。EG for JVM属性:-Dspring.profiles.active=dev

编辑(多个活动配置文件):为了避免出现多个文件,我们可以使用需要Janino依赖的条件处理(在此处进行设置),请参阅条件文档。使用此方法,我们还可以同时检查多个活动配置文件。EG(我没有测试此解决方案,因此如果无法解决,请发表评论):

<configuration>

    <if condition='"${spring.profiles.activE}".contains("profile1")'>
        <then>
         <!-- do whatever you want for profile1 -->
        </then>
    </if>

    <if condition='"${spring.profiles.activE}".contains("profile2")'>
        <then>
         <!-- do whatever you want for profile2 -->
        </then>
    </if>

    <!-- common config -->

</configuration>

有关条件处理的另一个示例,请参见javasenior答案。

解决方法

我正在使用logBACk库在spring boot项目中实现日志记录。我想根据我的spring配置文件(属性“ spring.pofiles.active”)加载不同的日志记录配置文件。我有3个文件:logBACk-dev.xml,logBACk-inte.xml和logBACk-prod.xml。我正在使用Spring Boot版本1.2.2.RELEASE。

如你在Spring Boot文档中所读。它说:

可以通过在类路径中包括适当的库来激活各种日志记录系统,并通过在类路径的根目录中或在Spring Environment属性logging.config指定的位置中提供适当的配置文件来进一步自定义各种日志记录系统。(但是请注意,由于日志记录是在创建ApplicationContext之前初始化的,因此无法从Spring @Configuration文件中的@Propertysources控制日志记录。系统属性和常规的Spring Boot外部配置文件都可以正常工作。)

所以我试图在我的application.properties文件中设置’logging.config’属性:

logging.config=classpath:/logBACk-${spring.profiles.activE}.xml

但是,当我启动应用程序时,未加载我的logBACk- {profilE} .xml &Hellip;

我认为日志记录是使用Spring Boot的所有项目都遇到的常见问题。我采用上述方法走上正确的路吗?我还有其他可行的解决方案,但我发现它们不那么优雅(在logBACk.xml文件或命令行属性中使用Janino进行条件解析)。

大佬总结

以上是大佬教程为你收集整理的spring boot,logback和logging.config属性全部内容,希望文章能够帮你解决spring boot,logback和logging.config属性所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。