当前位置: 首页 > 知识库问答 >
问题:

系统失效。println未打印到控制台

祝叶五
2023-03-14

我有一个在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="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%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=%d{yyyy-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=%K{level}%d{HH\:mm\:ss,SSS} %-5p [%c] (%t) %s%E%n

这是我的独立部署文件夹中的日志配置。

共有3个答案

裴韬
2023-03-14

我通常在wildfly中为每个部署配置日志时遇到问题,但是您可以使用wildfly的日志记录系统,将独立ou域配置文件的日志记录配置更改为这样可以解决问题:

<root-logger>
    <level name="TRACE"/>
    <handlers>
        <handler name="CONSOLE"/>
        <handler name="FILE"/>
    </handlers>
</root-logger>
爱乐邦
2023-03-14

由于您使用的是日志框架,因此有两种方法可以修复它:

  1. 删除日志记录框架和所有配置文件(我为什么要这样做)
  2. log4j.properties 文件从 src/main/resources 移动到 WEB-INF 文件夹。

引用:JBoss 文档,“每个部署日志记录”部分

每个部署的日志记录允许您将日志记录配置文件添加到部署中,并根据配置文件配置该部署的日志记录。在EAR中,配置应该在META-INF目录中。在WAR或JAR部署中,配置文件可以在META-INF或WEB-INF/classes目录中。允许使用以下配置html" target="_blank">文件:

    < li>logging.properties < Li > JBoss-logging . properties < li>log4j.properties < li>log4j.xml < li>jboss-log4j.xml
许学真
2023-03-14

我有一个log4j。多年前引起相同问题的.war(WEB-INF/classes)根级别的属性文件-删除修复了它

 类似资料:
  • 从PrintStream文档中: 可选地,可以创建打印流以便自动刷新;这意味着在写入字节数组、调用某个println方法或写入换行符或字节('\n')后,会自动调用flush方法。 然后给出代码 为什么我会看到控制台的输出?不应将任何内容写入控制台(System.out中的PrintStream实例),因为到目前为止不应刷新任何内容! 这不是答案。 我猜,答案是在源代码(私有实用程序方法Buffe

  • 问题内容: 我的C程序粘贴在下面。在bash中,程序打印“ char is”,不打印Ω。我的语言环境均为en_US.utf8。 问题答案: 这很有趣。显然,编译器将omega从UTF-8转换为UNICODE,但libc某种程度上将其弄乱了。 首先:-format说明符期望一个(即使在wprintf -version 中也是如此),因此您必须指定(并因此指定字符串)。 其次,如果您像这样将语言环境设

  • 你可以使用printf将消息打印到控制台,从而知道应用程序是如何运行的。这是调试代码的很有用的手段,因为你可以打印变量的值、知道什么时候代码将阻塞等等。 我们尝试使用函数unsigned char leds_get(void);打印LED的状态。 获取LED的状态,并将其打印到屏幕。修改test-leds.c如下: #include "contiki.h" #include "dev/leds.h

  • 我正在从兔子队列接收数据,我正试图将其转换为。消息始终以SOH字符开头,并始终以VT字符结尾,后跟ETX字符。数据接收正确,打印到控制台的字节数组正确。问题是,在转换为

  • 我在NetBeans IDE中使用Java编写了一个简单的程序。在今天早上对main方法做了一些更改后,当我运行程序时,控制台不会打印任何东西。我只是想让它到达startMenus(sc)。编辑:我现在已经放入了一些system.out.println(),但它没有达到“blah2”,就在我的第一个循环之后...