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

Wildfly Spring启动应用程序日志到调试级别

澹台华采
2023-03-14

我有一个spring boot应用程序,我生成了spring war。我在wildfly 16中部署了它,但我发现日志只在信息模式下生成。当我在Tomcat中部署时,同样的战争会在调试模式下生成日志。

我使用log4j2进行日志记录

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="DEBUG">
<Properties>
<Property name="basePath">F:/LOGS/</Property>
</Properties>
<CustomLevels>
<CustomLevel name="CDR" intLevel="1" />
</CustomLevels>
<Appenders>

<RollingFile name="NORMAL_LOG_FILE" fileName="${basePath}/appUMS.log"
filePattern="${basePath}/appUMS.log.%d{yyyy-MM-dd-HH}" >
<PatternLayout>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %c{1} %L- %msg%n
</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1"
modulate="true" />
</Policies>
<!-- <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/> -->
</RollingFile>

<Console name="console" target="SYSTEM_OUT">
<PatternLayout
pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %c{1} %L - %msg%n" />

</Console>

</Appenders>
<Loggers>
<Logger name="com.sixdee" level="debug" additivity="false">
<appender-ref ref="NORMAL_LOG_FILE" level="DEBUG" />
<AppenderRef ref="console" level="debug" />
<AppenderRef ref="ERR_LOG_FILE" level="error" />
</Logger>
    
<Root level="info" additivity="false">
<appender-ref ref="console" />
<AppenderRef ref="NORMAL_LOG_FILE" />
<AppenderRef ref="ERR_LOG_FILE"/>
</Root>
</Loggers>
</Configuration>

tomcat和wildfly日志中都使用了相同的log4j2。Wildfly/JBoss中是否有其他配置文件可用于启用调试级别??

共有2个答案

傅边浩
2023-03-14

发现真正的问题是,通过应用程序的log4j2 xml,野蝇子系统日志记录被覆盖了。所以我们必须禁用野蝇子系统日志记录。

<subsystem xmlns="urn:jboss:domain:logging:6.0">
        <console-handler name="CONSOLE">
            <level name="DEBUG"/>
            <formatter>
                <named-formatter name="COLOR-PATTERN"/>
            </formatter>
        </console-handler>
        <periodic-rotating-file-handler name="FILE" autoflush="true">
            <formatter>
                <named-formatter name="PATTERN"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="server.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>
        <logger category="com.arjuna">
            <level name="WARN"/>
        </logger>
        <logger category="io.jaegertracing.Configuration">
            <level name="WARN"/>
        </logger>
        <logger category="org.jboss.as.config">
            <level name="INFO"/>
        </logger>
        <logger category="sun.rmi">
            <level name="WARN"/>
        </logger>
        <root-logger>
            <level name="INFO"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>
        <formatter name="PATTERN">
            <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
        </formatter>
        <formatter name="COLOR-PATTERN">
            <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
        </formatter>
    </subsystem>

注释或删除此部分,以获得应用程序的Log4j2日志正常工作。

杜俊逸
2023-03-14

首先确保log4j。属性位于正确的META-INF文件夹中。

您还可以运行以下命令来启用调试级日志记录:

{wildfly}/bin/jboss-cli.sh --connect

[standalone@localhost:9990 /] /subsystem=logging/console-handler=CONSOLE:write-attribute(name=level,value=DEBUG)

[standalone@localhost:9990 /] /subsystem=logging/root-logger=ROOT:write-attribute(name=level,value=DEBUG)
 类似资料:
  • 下面是上面文件引用的: 但当以的身份运行InteliJ时,问题就会消失。

  • 问题内容: 我创建了一个Java桌面应用程序(使用Swing),现在尝试通过使用JNLP从网络启动它使其工作。当我从终端启动应用程序时,它运行良好,但是一旦从JNLP启动它,它就不会关闭。我必须每次都手动终止该进程。 我读到如果将其用作默认关闭操作可能会出现问题,但事实并非如此。它使用(隐式)。另外,释放所有对象后,我将显式调用: 我猜想在关闭应用程序时可能会引发异常,但是我找不到从JNLP开始获

  • 我使用的是Couchbase SDK和Spring boot 2.6.x版本。我使用的是spring spring-data-couch base:jar:4 . 4 . 0,它又有com . couch base . client:Java-client:jar:3 . 3 . 0依赖项。问题是,当尝试执行cluster.query()方法时,我需要查看正在执行什么查询。我需要启用调试日志。然而

  • 14:10:16.944[reactor-http-nio-1]调试org.springframework.http.codec.json.jackson2jsondecoder-[4EF27D66]解码[响应(data=hello)] 14:10:16.944[reactor-http-nio-1]调试reactor.netty.resources.pooledconnectionprovide

  • 一个简单的ASP.NET Core2.0web应用程序,作为应用程序服务部署在azure中-编辑以确保对ASPNETCORE_ENVIRONMENT开发和生产的配置是相同的。 在Startup类的Configure方法中包含以下内容: 根据aspnetcore_environment的值,导致不同的行为。 使用基本的ASP.NET core日志记录并配置应用程序洞察,我会得到以下行为: LogDe

  • 我正在尝试直接在STS中调试我的Spring启动应用程序,右键单击项目并调试为Spring启动应用程序。我可以看到我的控制器类中的断点正在被击中,但它没有击中我的服务类中的断点,线程只是运行,有什么想法吗?