System.out.println 不打印到控制台
Posted
技术标签:
【中文标题】System.out.println 不打印到控制台【英文标题】:System.out.println not printing to console 【发布时间】:2015-05-04 14:41:18 【问题描述】:我有一个在 Wildfly 8.* 上运行的 Spring Web 应用程序,由于某种原因,它不会打印到控制台。我看到所有控制台日志和堆栈跟踪都很好,但系统消息没有出现。
问题可能与我的 log4j 设置有关,所以我将发布该配置;
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration PUBLIC
"-//APACHE//DTD LOG4J 1.2//EN" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%dyyyy-MM-dd HH:mm:ss %-5p %c1:%L - %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
我之前在 JBoss 7.1 上运行过应用程序,但是没有出现这个问题,所以我真的不知道可能出了什么问题。
随时询问我的任何其他配置,不确定需要什么。
编辑:
logger.org.jboss.as.config.level=DEBUG
logger.org.jboss.as.config.useParentHandlers=true
logger.jacorb.config.level=ERROR
logger.jacorb.config.useParentHandlers=true
logger.org.apache.tomcat.util.modeler.level=WARN
logger.org.apache.tomcat.util.modeler.useParentHandlers=true
logger.com.arjuna.level=WARN
logger.com.arjuna.useParentHandlers=true
handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler
handler.CONSOLE.level=INFO
handler.CONSOLE.formatter=COLOR-PATTERN
handler.CONSOLE.properties=autoFlush,target,enabled
handler.CONSOLE.autoFlush=true
handler.CONSOLE.target=SYSTEM_OUT
handler.CONSOLE.enabled=true
handler.FILE=org.jboss.logmanager.handlers.PeriodicRotatingFileHandler
handler.FILE.level=ALL
handler.FILE.formatter=PATTERN
handler.FILE.properties=append,autoFlush,enabled,suffix,fileName
handler.FILE.constructorProperties=fileName,append
handler.FILE.append=true
handler.FILE.autoFlush=true
handler.FILE.enabled=true
handler.FILE.suffix=.yyyy-MM-dd
handler.FILE.fileName=C\:\\wildfly-8.2.0.Final\\standalone\\log\\server.log
formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter
formatter.PATTERN.properties=pattern
formatter.PATTERN.pattern=%dyyyy-MM-dd HH\:mm\:ss,SSS %-5p [%c] (%t) %s%E%n
formatter.COLOR-PATTERN=org.jboss.logmanager.formatters.PatternFormatter
formatter.COLOR-PATTERN.properties=pattern
formatter.COLOR-PATTERN.pattern=%Klevel%dHH\:mm\:ss,SSS %-5p [%c] (%t) %s%E%n
这是我在独立部署文件夹中的日志配置。
【问题讨论】:
你有没有考虑到DEBUG关卡是开放打印的 看看issues.jboss.org/browse/WFCORE-478 这似乎与我遇到的问题一模一样。我将尝试将 log4j 重新添加到我的项目中,看看是否可以解决问题。如果是,您应该将其作为答案,以便我标记它。 嘿,看看我的问题,这里是关于登录 wildfly 谢谢:***.com/q/59006162/7149835 【参考方案1】:由于您使用的是日志框架,因此有两种方法可以修复它:
-
删除日志框架和所有配置文件(我为什么要这样做)
将
log4j.properties
文件从src/main/resources
移动到WEB-INF
文件夹。
引用:JBoss Docs,“每个部署日志记录”部分
每个部署的日志记录允许您将日志记录配置文件添加到您的部署中,并根据配置文件配置该部署的日志记录。在 EAR 中,配置应该在 META-INF 目录中。在 WAR 或 JAR 部署中,配置文件可以位于 META-INF 或 WEB-INF/classes 目录中。 允许使用以下配置文件:
logging.properties jboss-logging.properties log4j.properties log4j.xml jboss-log4j.xml
【讨论】:
【参考方案2】:几年前我在 .war (WEB-INF/classes) 的根级别有一个 log4j.properties 文件,它导致了同样的问题 - 删除修复了它
【讨论】:
【参考方案3】:我通常在 Wildfly 中为每个部署配置日志时遇到问题,但您可以使用 Wildfly 中的日志记录系统,将独立 ou 域配置文件的日志记录配置更改为这样就可以了:
<root-logger>
<level name="TRACE"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="FILE"/>
</handlers>
</root-logger>
【讨论】:
您好,我添加了用于日志记录的独立配置文件。虽然我认为它可以在 .xml 或 .properties 中,但不确定在哪里定义 你在使用wildfly吗?独立应该是位于 wildfly/standalone/configuration/standalone.xml 或 wildfly/domain/configuration/standalone.xml 中的 i xml 你的建议已经在我的独立版本中了。我已经通过从我的项目中完全删除 log4j 以及删除依赖项来解决这个问题。问题可能是那里的配置。以上是关于System.out.println 不打印到控制台的主要内容,如果未能解决你的问题,请参考以下文章
java的System. out. println(),为啥out能调用println()?
java反射调用System.out.println实现控制台打印
tomcat没有打印system.out.println()