Java 如何配置Logback以在CloudBees上工作
我使用的是logback 1.0.0,配置如下:Java 如何配置Logback以在CloudBees上工作,java,logging,cloud,logback,cloudbees,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
<?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>
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配置了记录器,如下所示:
System.out.println(“+log.isDebugEnabled())代码>它打印为false,这意味着这个类没有启用调试,这很奇怪
- 我还尝试了另一件事
log.info(“@postconstructmybean”)代码>并且工作正常,我尝试将根日志记录级别更改为debug,但仍然只记录信息
您需要将其适当地记录到标准输出或标准输出:例如,请参阅:
(可能是更好的)-这确保了日志可以进入任何子系统并在应用程序迁移时集群工作。结果表明我的配置是正确的,但它只对信息有效,错误级别和调试级别不起作用。我已经有了STDOUT appender,并且在根日志中有一个对STDOUT appender的引用,那么我错过了什么?您能解释一下吗?您的意思是我应该在每个记录器标记中添加
?仅供参考,我的配置与cloudbees文档匹配:您有一个文件部分,它不在示例配置中。其他标准输出配置与示例类似,cloudbees support说如果你打印到stdout,我的配置看起来很好-你在papertrail中看到了吗?@Michael Neale printing sysouts出现在papertrail中。@Michael Neale,另一件事是当我打印到stdout时,log.isDebugEnabled()
它打印错误,你知道为什么吗?@Michael Neale我添加了一些更新,你能看一下吗?奇怪-这是一个logback错误吗?“它应该使用你告诉它的那个附件,对吗?”迈克尔·尼尔,我打开了一张支持票,他们正在调查。