Domanda

I would like to use JBoss logmanager in a standalone program through slf4j. I use the following dependencies (using JBoss7EAP6 maven repository):

<dependency org="org.slf4j"            name="slf4j-api"              rev="1.7.2.redhat-2"/>
<dependency org="org.jboss.slf4j"      name="slf4j-jboss-logmanager" rev="1.0.2.GA-redhat-1"/>
<dependency org="org.jboss.logmanager" name="log4j-jboss-logmanager" rev="1.0.2.Final-redhat-1"/>

I initialize logger like this:

package my.testpackage;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

...

private static final Logger LOGGER = LoggerFactory.getLogger(MyClass.class);

My log4j.properties:

log4j.rootLogger=ALL, ConsoleAppender
log4j.appender.ConsoleAppender=org.apache.log4j.ConsoleAppender 
log4j.appender.ConsoleAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.ConsoleAppender.layout.ConversionPattern=%d{ISO8601} %-5p [%t] %c\: %m%n 
log4j.appender.ConsoleAppender.Threshold=WARN 

The problem is, that nothing gets logged. The only way to see log messages is to add explicit logger configuration for the my.testpackage.MyClass like this:

log4j.logger.my.testpackage.MyClass=WARN   # WORKS

A parent package configuration doesn't work either

log4j.logger.my=WARN # DOESN'T WORK
È stato utile?

Soluzione

The JBoss Log Manager you're using is quite old and I don't know much about it. I can give you information on the current release, 1.5.2.Final however.

JBoss Log Manager uses it's own configuration file format similar to log4j and it needs to be called logging.properties and in the class path or you can add a system property logging.configuration=file:path/to/file.properties. Unfortunately at this point there is no real documentation on it, but I'll convert your log4j example to a JBoss Log Manager format.

# Additional loggers to configure (the root logger is always configured)
loggers=my.testpackage.MyClass,my

logger.level=INFO
logger.handlers=CONSOLE

logger.my.testpackage.MyClass.level=WARN

logger.my.level=WARN

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

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 [%t] %c: %s%E%n
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top