相关疑难解决方法(0)

SLF4J + Logback不会登录WildFly

我在WildFly 8中运行Web应用程序,由于某种原因它不会记录.我使用SLF4J和LOGBACK.日志文件是在部署时创建的,但它是空的.我也没有在wildfly日志中看到我的日志语句.

该课程包含:

package com.blah.oops;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

static final Logger log = LoggerFactory.getLogger(EndpointImpl.class);

log.debug("request called");
Run Code Online (Sandbox Code Playgroud)

战争包含:

  • WEB-INF\lib中\ SLF4J-API-1.7.5.jar
  • WEB-INF\lib中\的logback经典-1.1.1.jar
  • WEB-INF\lib中\的logback核-1.1.1.jar
  • WEB-INF \类\ logback.xml

配置文件logback.xml包含:

<configuration scan="true" scanPeriod="10 seconds">
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>${LOG_PATH}/backend-main.log</file>
        <encoder>
            <pattern>%date %level [%thread] %logger{10} %msg%n</pattern>
        </encoder>
    </appender>

    <!-- PROFILER configuration -->
    <turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter">
        <Marker>PROFILER</Marker>
        <OnMatch>ACCEPT</OnMatch>
        <!--  <OnMatch>DENY</OnMatch> -->
    </turboFilter>

    <logger name="org.eclipse.jetty.util.log" level="info"/>
    <logger name="com.blah" level="debug"/>
    <logger name="org.apache.cxf" level="warn"/>

    <root level="info">
        <appender-ref ref="FILE"/>
    </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

console.log包含logback初始化:

.[0m.[0m10:19:52,716 INFO  [stdout] (MSC service thread 1-2) 10:19:52,489 |-INFO in …
Run Code Online (Sandbox Code Playgroud)

java logback wildfly

18
推荐指数
2
解决办法
2万
查看次数

覆盖WildFly中的日志记录

我使用tomcat并简单地覆盖默认日志系统.如何在我的spring应用程序中使用wildfly上的logback启用日志记录?

我的logback.xml是关于tomcat的

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <encoder>
            <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
        </encoder>
    </appender>

    <logger name="org.springframework" level="WARN" />
    <logger name="com.citronium.planstery" level="INFO" />
    <logger name="org.apache.http.impl.conn.tsccm" level="ERROR" />

    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

jboss log4j logback wildfly

17
推荐指数
2
解决办法
3万
查看次数

如何在Spring Boot中禁用日志记录的自动配置?

Spring Boot有一个功能,它可以自动检测任何可用的日志框架(基于org.springframework.boot.logging.LoggingSystem.SYSTEMSLogback,Log4j或JUL中列出的类的存在),并从应用程序提供的日志配置文件或Spring Boot自己的默认配置文件进行配置,打包Spring Boot本身.

当将Grails 3应用程序作为war文件部署到JBoss EAP 6(又名WildFly 7)时,这会导致问题.当应用程序初始化时,Spring Boot会找到JBoss提供的JUL(org.jboss.logmanager.LogManager)日志记录实现,并调用readConfiguration()它上面的方法,这会影响日志记录配置.

  • 我想继续使用JBoss提供的日志记录实现和JBoss提供的日志记录配置,而不是在war文件中打包一个单独的日志记录实现.这允许我从服务器的配置文件中配置应用服务器上的所有应用程序.

有没有办法禁用Spring Boot的日志记录自动配置?(我可以使用Spring Boot 检测并使用日志框架;我只是不希望它尝试配置它.)我查看了源代码,但没有看到任何钩子来控制它.

相关源代码:

可能的想法:

  • 以某种方式LoggingApplicationListener从应用程序侦听器列表中删除它之前接收ApplicationStartedEventApplicationEnvironmentPreparedEvent事件(触发日志记录的配置)?

这些其他相关问题并没有解决我的问题,因为用例不同:

版本:

  • Spring Boot - 1.3.3.RELEASE
  • Grails - 3.1.5

spring-boot

3
推荐指数
1
解决办法
4311
查看次数

标签 统计

logback ×2

wildfly ×2

java ×1

jboss ×1

log4j ×1

spring-boot ×1