如何在spring-boot可执行jar文件中配置java logging.properties

Posted

技术标签:

【中文标题】如何在spring-boot可执行jar文件中配置java logging.properties【英文标题】:How to configure java logging.properties in spring-boot executable jar file 【发布时间】:2016-07-03 09:43:07 【问题描述】:

我将我的应用程序打包为 spring-boot 可执行 jar 文件。我在 jar 文件的根目录中添加了一个 logging.properties,但似乎这个文件对应用程序没有任何影响。如何配置 spring-boot 可执行 jar 日志记录?

【问题讨论】:

参考此链接javabeat.net/spring-boot-logging。如果您有一个 maven 项目,请将日志文件保存在资源文件夹中,文件名应为 logback.xml 它使用 xml 格式,但我想使用属性。我的应用程序中的所有记录器都来自 java.util.logging.Logger,我是否可以使用 java logging.properties 来配置我的日志记录? 【参考方案1】:

Spring Boot 默认使用 Logback 作为日志记录。因此,在您需要执行任何自定义日志记录或其他日志记录器(如 Log4j2)之前,您不需要任何额外的日志记录配置。

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

    public class App 
    
        private static final Logger logger = LoggerFactory.getLogger(App.class);    
        public static void main( String[] args )
        
            logger.info("Hello Logger");
        
    

如果您需要自定义日志记录,请参考 http://www.javabeat.net/spring-boot-logging/

我不确定如何使用 logger.properties。为什么不能使用 logback.xml。

【讨论】:

我有很多使用 java.util.logging 的代码。如果我决定使用 slf4j,我必须更改很多地方。 您是否尝试将所有日志写入单独的文件中? 我想将所有日志写入一个文件,但按大小分开。 看看这个链接docs.spring.io/spring-boot/docs/current/reference/html/… 该文档说“Java Util Logging 存在已知的类加载问题,这些问题在从‘可执行 jar’运行时会导致问题。我们建议您尽可能避免它。”我尝试了很多组合,但没有运气。

以上是关于如何在spring-boot可执行jar文件中配置java logging.properties的主要内容,如果未能解决你的问题,请参考以下文章

使用可执行 Jar 时找不到 Spring-Boot 资源

使用 Spring-Boot 创建一个简单的 JAR 而不是可执行的 JAR

聚合maven+spring-boot打包可执行jar

spring-boot maven插件

Spring Boot 上传 BootRepackage 可执行 Jar

spring-boot项目直接读取jar包内文件的最简单方法