【问题标题】:Jhipster Spring Boot Log setupJhipster Spring Boot 日志设置
【发布时间】:2018-09-27 14:48:49
【问题描述】:

我使用 JHipster 创建应用程序。是否有任何简单的方法来配置应用程序为每一天创建日志文件?我在一个文件中尝试了所有内容,但它变得很大并且不是一个好习惯。我通过在服务器启动命令的末尾添加这部分来做到这一点:

>> console.log &

Logback-spring.xml:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>logs/log-file.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>90</maxHistory>
    </rollingPolicy>
    <encoder>
        <charset>utf-8</charset>
        <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
    </encoder>
</appender>

<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>512</queueSize>
    <appender-ref ref="FILE"/>
</appender>


<logger name="javax.activation" level="WARN"/>
<logger name="javax.mail" level="WARN"/>
<logger name="javax.xml.bind" level="WARN"/>
<logger name="ch.qos.logback" level="WARN"/>
<logger name="com.codahale.metrics" level="WARN"/>
<logger name="com.ryantenney" level="WARN"/>
<logger name="com.sun" level="WARN"/>
<logger name="com.zaxxer" level="WARN"/>
<logger name="io.undertow" level="WARN"/>
<logger name="io.undertow.websockets.jsr" level="ERROR"/>
<logger name="org.ehcache" level="WARN"/>
<logger name="org.apache" level="WARN"/>
<logger name="org.apache.catalina.startup.DigesterFactory" level="OFF"/>
<logger name="org.bson" level="WARN"/>
<logger name="org.elasticsearch" level="WARN"/>
<logger name="org.hibernate.validator" level="WARN"/>
<logger name="org.hibernate" level="WARN"/>
<logger name="org.hibernate.ejb.HibernatePersistence" level="OFF"/>
<logger name="org.springframework" level="WARN"/>
<logger name="org.springframework.web" level="WARN"/>
<logger name="org.springframework.security" level="WARN"/>
<logger name="org.springframework.cache" level="WARN"/>
<logger name="org.thymeleaf" level="WARN"/>
<logger name="org.xnio" level="WARN"/>
<logger name="springfox" level="WARN"/>
<logger name="sun.rmi" level="WARN"/>
<logger name="liquibase" level="WARN"/>
<logger name="LiquibaseSchemaResolver" level="INFO"/>
<logger name="sun.rmi.transport" level="WARN"/>

<!-- https://logback.qos.ch/manual/configuration.html#shutdownHook and https://jira.qos.ch/browse/LOGBACK-1090 -->
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>

<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
    <resetJUL>true</resetJUL>
</contextListener>

【问题讨论】:

    标签: java spring-boot jhipster


    【解决方案1】:

    logback-spring.xml 中配置RollingFileAppender 而不是使用ConsoleAppender。见https://logback.qos.ch/manual/appenders.html#RollingFileAppender

    JHipster 生成的 logback-spring.xml 包含所有 prod 配置,您只需取消注释即可。

    <!-- The FILE and ASYNC appenders are here as examples for a production configuration -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>90</maxHistory>
        </rollingPolicy>
        <encoder>
            <charset>utf-8</charset>
            <Pattern>%d %-5level [%thread] %logger{0}: %msg%n</Pattern>
        </encoder>
    </appender>
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <queueSize>512</queueSize>
        <appender-ref ref="FILE"/>
    </appender>
    <root level="${logging.level.root}">
        <appender-ref ref="ASYNC"/>
    </root>
    

    【讨论】:

    • 我这样做了,当我从 Eclipse 以开发模式启动服务器时,它为今天的日期创建了文件,但它一直是空的
    • 让我们忘记 eclipse,它是否适用于 mvnw 或 gradlew 或运行可执行战争?而且我认为您正在寻找不在开发中的产品解决方案,因为您的问题在开发中没有多大意义。
    • 是的,当然只是想测试一下。所以我使用 maven 构建了 .war 文件。我启动了它,它仍然创建日志文件,但将所有内容写入控制台。我应该如何将输出重定向到日志文件?
    • 正确的配置在你生成的 logback-spring.xml 中被注释掉了,你只需要取消注释 github.com/jhipster/jhipster-sample-app/blob/master/src/main/… 不要忘记 appender-ref
    • 正如您在编辑的评论中看到的那样,这正是我所做的,但它仍然没有向日志文件写入任何内容,而是在控制台中。我应该用一些额外的命令启动程序吗?
    【解决方案2】:

    您可以在自己的 logback.xml 中使用此代码

    <appender name="dailyRollingFileAppenderError" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${DEV_HOME}/error.log</File>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>%d [%-5level] %logger{36} - %msg%n</Pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <FileNamePattern>${DEV_HOME}/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>
    
    
    <root level="error">
        <appender-ref ref="dailyRollingFileAppenderError"/>
    </root>
    

    【讨论】:

      猜你喜欢
      • 2019-10-27
      • 2021-11-30
      • 2018-03-15
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      • 2013-12-28
      • 2021-10-17
      • 2018-01-05
      相关资源
      最近更新 更多