这个问题很简单,但我找不到资料。 (可能我对Java框架的知识严重缺乏)

如何使用application.properties设置日志级别? 日志文件的位置,等等?


当前回答

我们也可以像下面这样通过命令行打开DEBUG日志

java -jar <jar file> --debug

其他回答

如果使用eclipse IDE,并且您的项目是maven,请记住清理并构建项目以反映更改。

您可以尝试将日志级别设置为DEBUG,它将在启动应用程序时显示所有内容

logging.level.root=DEBUG

如果你想设置更多的细节,请添加一个日志配置文件名“logback.xml”或“logback-spring.xml”。

在你的应用中。属性文件,输入如下:

logging.config: classpath:logback-spring.xml

在loback-spring.xml中,像这样输入:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
        <include resource="org/springframework/boot/logging/logback/base.xml"/>

        <appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">

            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>

            <file>sys.log</file>

            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">


                <fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/system.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>500MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>

            <encoder>
                <pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
                </pattern>
            </encoder>
        </appender>


        <appender name="BUSINESS_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>TRACE</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>

            <file>business.log</file>

            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

                <fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/business.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

                <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>500MB</maxFileSize>
                </timeBasedFileNamingAndTriggeringPolicy>
            </rollingPolicy>

            <encoder>
                <pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
                </pattern>
            </encoder>
        </appender>


        <logger name="{project-package-name}" level="TRACE">
            <appender-ref ref="BUSINESS_APPENDER" />
        </logger>

        <root level="INFO">
            <appender-ref ref="ROOT_APPENDER" />
        </root>

    </configuration>

现有的答案很好。我只是想与您分享一个新的spring引导功能,允许对日志进行分组并在整个组上设置日志级别。

来自文件的例子:

创建日志记录组

logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat

为组设置日志级别

logging.level.tomcat=TRACE

这是一个很好的功能,它带来了更多的灵活性。

你可以使用你的application.properties来做到这一点。

logging.level。=ERROR ->设置根日志级别为ERROR ... logging.level。=DEBUG ->设置根日志级别为DEBUG log .file=${java.io.tmpdir}/myapp.log ->设置日志的绝对路径为TMPDIR/myapp.log 一个正常的默认应用程序集。关于使用概要文件进行日志记录的属性如下: application.properties:

spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log

application-dev.properties:

logging.level.=DEBUG
logging.file=

当你在你最喜欢的IDE中开发时,你只需要添加一个-Dspring.profiles。active=dev作为应用程序运行/调试配置的VM参数。

这将使您在开发期间只在生产和调试日志中记录错误,而不将输出写入日志文件。这将提高开发期间的性能(并节省SSD驱动器几个小时的操作;))。