使用org.springframework.boot.logging.LoggingSystem系统属性可以强制Spring Boot使用指定的日志系统,该属性值需要是LoggingSystem实现类的全限定名,如果值为none,则彻底禁用Spring Boot的日志配置。

    由于日志初始化早于ApplicationContext的创建,所以不可能通过指定的Spring @Configuration文件控制日志,系统属性和Spring Boot外部化配置可以正常工作。

    如果可能的话,建议你使用-spring变种形式定义日志配置(例如,使用logback-spring.xml而不是logback.xml)。如果你使用标准的配置路径,Spring可能不能够完全控制日志初始化。

    Java Util Logging从可执行jar运行时会导致一些已知的类加载问题,我们建议尽可能不使用它。

    Spring Environment System Property Comments
    logging.exception-conversion-word LOG_EXCEPTION_CONVERSION_WORD 记录异常使用的关键字
    logging.file LOG_FILE 如果指定就会在默认的日志配置中使用
    logging.path LOG_PATH 如果指定就会在默认的日志配置中使用
    logging.pattern.console 日志输出到控制台(stdout)时使用的模式(只支持默认的logback设置)
    logging.pattern.file FILE_LOG_PATTERN 日志输出到文件时使用的模式(如果LOG_FILE启用,只支持默认的logback设置)
    logging.pattern.level LOG_LEVEL_PATTERN 用来渲染日志级别的格式(默认%5p,只支持默认的logback设置)
    PID PID 当前的处理进程(process)ID(能够找到,且还没有用作OS环境变量)

    所有支持的日志系统在解析配置文件时都能获取系统属性的值,具体可以参考spring-boot.jar中的默认配置。

    如果想在日志属性中使用占位符,你需要使用,而不是底层框架的语法。尤其是使用Logback时,你需要使用:作为属性名和默认值的分隔符,而不是:-