java – Wildfly和空白行的logback
发布时间:2020-12-15 02:14:41 所属栏目:Java 来源:网络整理
导读:我正在尝试使用Wildfire 9的Logback.为此,我在我的WEB-INF文件夹中添加了一个jboss-deployment-structure.xml文件和这个内容(我也排除了Hibernate以确保不会拉jboss-logging): ?xml version="1.0" encoding="UTF-8"?jboss-deployment-structure deployment
我正在尝试使用Wildfire 9的Logback.为此,我在我的WEB-INF文件夹中添加了一个jboss-deployment-structure.xml文件和这个内容(我也排除了Hibernate以确保不会拉jboss-logging):
<?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> 它工作正常,除了我在每个日志之间有空行: 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,557 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml] 和: 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中,我将这个模式用于控制台: <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文件中,我有这个: 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的日志不再有换行符. 如何在没有空行的情况下清洁东西? 解决方法
由于WildFly将System.out和System.err包装在记录器中,因此如果在ConsoleAppender上使用该模式,则会导致打印2行分隔符.您可以尝试从ConsoleAppender中删除%n格式并使用immediateFlush = true选项,也可以创建另一个不会打印行分隔符并将其分配给stdout的控制台处理程序.
对于后者,这里有一些CLI命令可以实现这一点. /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格式化,这应该工作).然后创建一个使用该模式的新控制台处理程序.最后添加一个名为stdout的记录器并为其分配处理程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |