目標:我的應用程序應該有ERROR和DEBUG級別的消息。日誌級別必須通過JBoss管理控制檯進行設置(切換)。應該將日誌寫入標準的JBoss日誌文件和服務器控制檯。在JBoss 7.1.1中記錄DEBUG級別
我試圖使用java.util.logging.Logger,但是這個記錄器沒有必要的級別。 我用slf4j切換到log4j。帶有ERROR級別的消息存在。問題與DEBUG和System.out.println。有趣的是,DEBUG級別在測試階段是可見的。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Logger creation and configuration
*/
public class ResourcesLog {
@Produces
Logger getLog(InjectionPoint ip) {
String category = ip.getMember().getDeclaringClass().getName();
return LoggerFactory.getLogger(category);
}
}
或只是LOG = LoggerFactory.getLogger(MyClass.class); Pom file:
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.6</version>
</dependency>
也許包含不必要的。我無法將slf4j-simple和slf4j-api設置爲「提供」 - 出現錯誤。這個庫應該在戰爭中嗎?
JBoss的部署,structure.xml在WEB-INF:在資源文件夾
<?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>
而且log4j.xml文件設置(在戰爭中是 'WEB-INF /班/ log4j.xml文件'):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/server.log"/>
<param name="Append" value="true"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Target" value="System.out"/>
<param name="Threshold" value="DEBUG"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
</layout>
</appender>
<category name="org.mypackage">
<priority value="DEBUG"/>
</category>
<root>
<level value="INFO"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>
同樣在JBoss Admin Console中,我在「Logging Categories」中有設置: – Olga
,名稱爲「org.mypackage」級別「DEBUG」的類別 – Olga
我發現解決方案在JBoss Admin控制檯的控制檯處理程序中拋出更改日誌級別。但它適用於所有包,我只想設置爲「org.mypackage」。有任何想法嗎? – Olga