首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >野蝇和带空行的logback

野蝇和带空行的logback
EN

Stack Overflow用户
提问于 2016-05-03 12:38:12
回答 2查看 1.5K关注 0票数 7

我试图在Wildfire 9中使用Logback。为此,我在我的WEB文件夹中添加了一个JBos-Deployment-structure.xml文件,其中包含了以下内容(为了确保不进行jboss,我还排除了Hibernate ):

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <exclude-subsystems>
            <subsystem name="logging" />
        </exclude-subsystems>
        <exclusions>
            <module name="org.hibernate" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

除了我在每个日志之间有空行外,它还能正常工作:

代码语言:javascript
复制
14:25:25,249 INFO  [org.jboss.as.jpa] (MSC service thread 1-8) WFLYJPA0002: Read persistence.xml for portalPU
14:25:25,253 INFO  [org.jboss.as.jpa] (MSC service thread 1-8) WFLYJPA0002: Read persistence.xml for emptyPU
14:25:25,631 INFO  [stdout] (MSC service thread 1-1) 14:25:25,556 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback.groovy]

14:25:25,631 INFO  [stdout] (MSC service thread 1-1) 14:25:25,557 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]

以及:

代码语言:javascript
复制
14:26:49,827 INFO  [stdout] (default task-2) 2016-05-03 14:26:49 [default task-2] DEBUG f.s.q.p.web.filters.InstallFilter -Users found: 1

14:26:50,676 INFO  [stdout] (default task-3) 2016-05-03 14:26:50 [default task-3] DEBUG f.s.q.p.web.filters.InstallFilter -Users found: 1

14:26:50,716 INFO  [stdout] (default task-4) 2016-05-03 14:26:50 [default task-4] DEBUG f.s.q.p.web.filters.InstallFilter -Users found: 1

14:26:50,760 INFO  [stdout] (default task-5) 2016-05-03 14:26:50 [default task-5] DEBUG f.s.q.p.web.filters.InstallFilter -Users found: 1

14:26:50,779 INFO  [stdout] (default task-6) 2016-05-03 14:26:50 [default task-6] DEBUG f.s.q.p.web.filters.InstallFilter -Users found: 1

14:26:51,162 INFO  [stdout] (default task-8) 2016-05-03 14:26:51 [default task-8] DEBUG f.s.q.p.web.filters.InstallFilter -Users found: 1

14:26:51,180 INFO  [stdout] (default task-7) 2016-05-03 14:26:51 [default task-7] DEBUG f.s.q.p.web.filters.InstallFilter -Users found: 1

在我的logback.xml中,我将此模式用于控制台:

代码语言:javascript
复制
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern><![CDATA[%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} -%msg%n]]></Pattern>
    </layout>
</appender>

在Wildfly的logging.properties文件中,我有以下内容:

代码语言:javascript
复制
formatter.COLOR-PATTERN=org.jboss.logmanager.formatters.PatternFormatter
formatter.COLOR-PATTERN.properties=pattern
formatter.COLOR-PATTERN.pattern=%K{level}%d{HH\:mm\:ss,SSS} %-5p [%c] (%t) %s%e%n

我认为问题是从ConsoleAppender和PatternFormatter的%n开始。如果我试图删除ConsoleAppender的%n,就像我不再有刷新:我看不到日志。如果删除PatternFormatter的%n,则没有空行,但Wildfly的日志不再有linefeed。

如何在没有空白行的情况下保持干净?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-04 19:27:09

由于WildFly将System.outSystem.err包装在记录器中,如果在ConsoleAppender上使用该模式,将导致打印2行分隔符。您可以尝试从%n中删除ConsoleAppender格式并使用immediateFlush=true选项,也可以创建另一个console-handler,该console-handler不会打印行分隔符并将其分配给stdout

对于后面的内容,这里有一些CLI命令可以实现这一点。

代码语言:javascript
复制
/subsystem=logging/pattern-formatter=stdout-pattern:add(pattern="%s")
/subsystem=logging/console-handler=stdout-console:add(autoflush=true, named-formatter=stdout-pattern, target=System.out)
/subsystem=logging/logger=stdout:add(handlers=[stdout-console], use-parent-handlers=false)

这些命令添加了一个只打印传入消息的模式(因为它是通过logback ConsoleAppender格式化的,所以应该可以工作)。然后创建一个使用该模式的新console-handler。最后,添加一个名为stdout的记录器,并将处理程序分配给它。

票数 1
EN

Stack Overflow用户

发布于 2016-12-02 13:25:34

我在standalone.xml中删除了%n,现在Eclipse中的日志很好

代码语言:javascript
复制
<formatter name="COLOR-PATTERN">
    <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e"/>
</formatter>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37004390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档