没有为 slf4j 创建文件和记录器
File and logger was not created for slf4j
在我的应用程序中,我使用 slf4j 作为记录器。我使用 logback.xml 进行配置。在 运行 main class 时,我得到了正确的响应,这意味着为了我的测试目的,我写了一个 main class。但是构建和部署后的相同配置我没有得到任何响应。记录器文件也未创建且未捕获日志。
在这里我提到了我的配置 xml 文件。
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Send debug messages to System.out -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<!-- Send debug messages to a file at "c:/jcg.log" -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>d:/Logs/truprovider.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>d:/Logs/truprovider.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="com.cts.emblem.batch" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</logger>
<!-- By default, the level of the root level is set to DEBUG -->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
根据您提供的信息,很难说出发生了什么,我怀疑(只是一个大胆的猜测)日志记录基础设施根本没有配置,因为这个文件不知何故没有传播到工件(WAR,我假设)
当您 运行 应用程序时,您可以在任何日志上放置一个断点。*** 消息(如 log.info)并检查它是否在列表中有任何分配的附加程序,同样,假设附加程序列表将是空的。
我正在为我的 wildfly 服务器获取默认记录器。修改服务器配置后问题解决。将 jboss-deployment-structure.xml 文件放在 META-INF.
下
jboss-deployment-structure.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.apache.log4j" />
<module name="org.jboss.logging" />
<module name="org.jboss.logging.jul-to-slf4j-stub" />
<module name="org.jboss.logmanager" />
<module name="org.jboss.logmanager.log4j" />
<module name="org.slf4j" />
<module name="org.slf4j.impl" />
</exclusions>
</deployment>
</jboss-deployment-structure>
在我的应用程序中,我使用 slf4j 作为记录器。我使用 logback.xml 进行配置。在 运行 main class 时,我得到了正确的响应,这意味着为了我的测试目的,我写了一个 main class。但是构建和部署后的相同配置我没有得到任何响应。记录器文件也未创建且未捕获日志。 在这里我提到了我的配置 xml 文件。
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- Send debug messages to System.out -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- By default, encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<!-- Send debug messages to a file at "c:/jcg.log" -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>d:/Logs/truprovider.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>%d{yyyy-MM-dd_HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<FileNamePattern>d:/Logs/truprovider.%i.log.zip</FileNamePattern>
<MinIndex>1</MinIndex>
<MaxIndex>10</MaxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<logger name="com.cts.emblem.batch" level="INFO" additivity="false">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</logger>
<!-- By default, the level of the root level is set to DEBUG -->
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
根据您提供的信息,很难说出发生了什么,我怀疑(只是一个大胆的猜测)日志记录基础设施根本没有配置,因为这个文件不知何故没有传播到工件(WAR,我假设)
当您 运行 应用程序时,您可以在任何日志上放置一个断点。*** 消息(如 log.info)并检查它是否在列表中有任何分配的附加程序,同样,假设附加程序列表将是空的。
我正在为我的 wildfly 服务器获取默认记录器。修改服务器配置后问题解决。将 jboss-deployment-structure.xml 文件放在 META-INF.
下jboss-deployment-structure.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.apache.commons.logging" />
<module name="org.apache.log4j" />
<module name="org.jboss.logging" />
<module name="org.jboss.logging.jul-to-slf4j-stub" />
<module name="org.jboss.logmanager" />
<module name="org.jboss.logmanager.log4j" />
<module name="org.slf4j" />
<module name="org.slf4j.impl" />
</exclusions>
</deployment>
</jboss-deployment-structure>