commons-loggin 与 slf4j的桥接器

本文介绍了一种将Apache Commons Logging与SLF4j及Logback集成的方法,通过自定义实现允许Spring等框架利用Logback作为底层日志工具。提供了一个名为LogbackLogger的类,用于桥接两个日志系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

选择使用SLF4j + Logback后,像Spring等还未使用SLF4j作为日志接口的第三方类库和工具,不能共享Logback做为底层日志工具,通过以下对JCL的扩展 则可达到使用Logback的目的:

 

package org.apache.commons.logging.impl.ext;

import java.io.Serializable;

import org.apache.commons.logging.Log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * @author inc062805
 * 
 * 该类是commons-loggin 与 slf4j的桥接类
 */
public class LogbackLogger implements Log, Serializable {
	//
	private static final long serialVersionUID = -5610674106929984260L;

	//
	private transient Logger logger = null;

	private String name = null;

	public LogbackLogger() {
	}

	public LogbackLogger(String name) {
		this.name = name;
		logger = getLogger();
	}

	/**
	 * Return the native Logger instance we are using.
	 */
	public Logger getLogger() {
		if (logger == null) {
			logger = LoggerFactory.getLogger(name);
		}
		return logger;
	}

	public void debug(Object msg) {
		getLogger().debug(msg.toString());
	}

	public void debug(Object msg, Throwable ex) {
		getLogger().debug(msg.toString(), ex);

	}

	public void error(Object msg) {
		getLogger().error(msg.toString());

	}

	public void error(Object msg, Throwable ex) {
		getLogger().error(msg.toString(), ex);

	}

	public void fatal(Object msg) {
		error(msg);
	}

	public void fatal(Object msg, Throwable ex) {
		error(msg, ex);
	}

	public void info(Object msg) {
		getLogger().info(msg.toString());
	}

	public void info(Object msg, Throwable ex) {
		getLogger().info(msg.toString(), ex);
	}

	public void trace(Object msg) {
		getLogger().trace(msg.toString());
	}

	public void trace(Object msg, Throwable ex) {
		getLogger().trace(msg.toString(), ex);
	}

	public void warn(Object msg) {
		getLogger().warn(msg.toString());
	}

	public void warn(Object msg, Throwable ex) {
		getLogger().warn(msg.toString(), ex);
	}

	public boolean isDebugEnabled() {
		return getLogger().isDebugEnabled();
	}

	public boolean isErrorEnabled() {
		return getLogger().isErrorEnabled();
	}

	public boolean isFatalEnabled() {
		return getLogger().isErrorEnabled();
	}

	public boolean isInfoEnabled() {
		return getLogger().isInfoEnabled();
	}

	public boolean isTraceEnabled() {
		return getLogger().isTraceEnabled();
	}

	public boolean isWarnEnabled() {
		return getLogger().isWarnEnabled();
	}
}

 

你也可以从附件中下载以上类文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值