如何配置Logback以在CloudBees上工作

时间:2013-07-24 22:37:21

标签: java logging cloud 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>logs\motivosity_logback.log</File> <!-- make sure you have permissions on this file -->   
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <FileNamePattern>logs\logFile.%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");
}

请告知为什么它不起作用。

更新:

  • 标准sysouts工作正常:System.out.println("INIT MyBean");
  • 我想要log.debug的类在com.myapp.web.controllers包中,并且我为 com.myapp 配置了logger,如下所示:

       

但是当我尝试使用sysout时 System.out.println("######## DEBUG ENABLED: " + log.isDebugEnabled());它打印为false,这意味着没有为此类启用调试,这非常奇怪。

  • 我尝试了另一件事log.info("@PostConstruct MyBean");并且工作正常,我尝试将根目录日志级别更改为调试,但仍然只记录信息。

2 个答案:

答案 0 :(得分:2)

您需要根据需要将其记录到STDOUT或STDERR:例如,请参阅:

file and stdout appenders in logback.xml

(可能是一些更好的) - 确保日志可以发送到任何子系统并进行集群工作以及应用程序迁移时。

答案 1 :(得分:0)

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