如何配置Logback以在CloudBees上工作



我使用logback 1.0.0,我的配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">
    <appender name="STDOUT"
            class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>

        <!--Daily rolling file appender -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>logsmotivosity_logback.log</File> <!-- make sure you have permissions on this file -->   
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <FileNamePattern>logslogFile.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- or whenever the file size reaches 100MB -->
                <maxFileSize>50MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- keep 30 days' worth of history -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <charset>UTF-8</charset>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
        </encoder>
    </appender>

    <logger name="com.myapp">
        <level value="debug" />
    </logger>
    <logger name="org.ocpsoft.rewrite.faces">
        <level value="debug" />
    </logger>
    <logger name="org.springframework.security.web.authentication">
        <level value="debug" />
    </logger>
    <logger name="org.apache">
        <level value="info" />
    </logger>
    <root>
        <level value="info" />
        <appender-ref ref="STDOUT" />
        <appender-ref ref="FILE" />
    </root>
</configuration>

它在本地运行良好,但在cloudbees上,当我打开主页时

我在papertrailapp 中看不到任何日志

我使用日志如下:

private static Logger log = LoggerFactory.getLogger(MyBean.class);
if (log.isDebugEnabled()) {
            log.debug("INIT MyBean");
}

请说明为什么它不起作用。

更新:

  • 标准系统运行良好:System.out.println("INIT MyBean");
  • 我想记录.debug的类在com.myapp.web.controllers包中,我为com.myapp配置了记录器,如下所示:

但当我试着退出系统时System.out.println("######## DEBUG ENABLED: " + log.isDebugEnabled());它打印false,这意味着这个类没有启用调试,这很奇怪。

  • 我尝试了log.info("@PostConstruct MyBean");,结果很好,我尝试将根日志记录级别更改为debug,但仍然只记录信息

您需要让它适当地登录到STDOUT或STDERR:例如,请参阅:

logback.xml 中的文件和stdout附加程序

(可能有一些更好的)-确保日志可以进入任何子系统,并在应用程序迁移时集群工作。

证明我的配置是正确的,但它只适用于信息,错误级别和调试级别不起作用。

相关内容

最新更新