Dag*_*Dag 2 slf4j java.util.logging hornetq
我希望从我的应用程序中嵌入的HornetQ的所有日志记录委托给slf4j.不幸的是,任何尝 我已经尝试过了
SLF4JBridgeHandler.install();Log4jLogDelegateFactory("hornetq-configuration.xml"经过<log-delegate-factory-class-name>org.hornetq.integration.logging.Log4jLogDelegateFactory</log-delegate-factory-class-name>)LogDelegate和LogDelegateFactory但无论我做什么,下面的线路都没有抓住:
13.07.2011 17:42:11 org.hornetq.core.logging.impl.JULLogDelegate warn
WARNUNG: AIO wasn't located on this platform, it will fall back to using pure Java NIO. If your platform is Linux, install LibAIO to enable the AIO journal
13.07.2011 17:42:11 org.hornetq.core.logging.impl.JULLogDelegate info
INFO: Using NIO Journal
13.07.2011 17:42:11 org.hornetq.core.logging.impl.JULLogDelegate info
INFO: Started Netty Acceptor version 3.1.5.GA-r1772
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我找到了一个完整的解决方案,我想与您分享.我之前已经尝试过这些,但你必须结合其他答案中提到的一些技巧.
import org.hornetq.spi.core.logging.LogDelegate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Slf4jLogDelegate implements LogDelegate {
private final Logger logger;
public Slf4jLogDelegate(Class clazz) {
logger = LoggerFactory.getLogger(clazz);
}
@Override
public void debug(Object message) {
logger.debug(message.toString());
}
@Override
public void debug(Object message, Throwable t) {
logger.debug(message.toString(), t);
}
@Override
public void error(Object message) {
logger.error(message.toString());
}
@Override
public void error(Object message, Throwable t) {
logger.error(message.toString(), t);
}
@Override
public void fatal(Object message) {
logger.error(message.toString());
}
@Override
public void fatal(Object message, Throwable t) {
logger.error(message.toString(), t);
}
@Override
public void info(Object message) {
logger.info(message.toString());
}
@Override
public void info(Object message, Throwable t) {
logger.info(message.toString(), t);
}
@Override
public boolean isDebugEnabled() {
return logger.isDebugEnabled();
}
@Override
public boolean isInfoEnabled() {
return logger.isInfoEnabled();
}
@Override
public boolean isTraceEnabled() {
return logger.isTraceEnabled();
}
@Override
public void trace(Object message) {
logger.trace(message.toString());
}
@Override
public void trace(Object message, Throwable t) {
logger.trace(message.toString(), t);
}
@Override
public void warn(Object message) {
logger.warn(message.toString());
}
@Override
public void warn(Object message, Throwable t) {
logger.warn(message.toString(), t);
}
}
import org.hornetq.spi.core.logging.LogDelegate;
import org.hornetq.spi.core.logging.LogDelegateFactory;
public class Slf4jLogDelegateFactory implements LogDelegateFactory {
// Maybe caching of delegates makes sense?
@Override
public LogDelegate createDelegate(Class clazz) {
return new Slf4jLogDelegate(clazz);
}
}
<log-delegate-factory-class-name>yourpackage.Slf4jLogDelegateFactory</log-delegate-factory-class-name>org.hornetq.core.logging.Logger.setDelegateFactory(new Slf4jLogDelegateFactory());我只是想知道为什么他们不能使用经过验证的记录机制,这使得交换记录器变得容易.
| 归档时间: |
|
| 查看次数: |
1983 次 |
| 最近记录: |