Jfinal使用log4j2打印日志

本文介绍如何在Java Web框架JFinal中集成Log4j2进行日志记录。包括Maven依赖配置、自定义Log4j2Log类、实现ILogFactory接口以及在JFinal配置类中的设置。

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

1,添加maven配置

	<properties>
		<log4j2.version>2.11.0</log4j2.version>
		<slf4j.version>1.7.25</slf4j.version>
	</properties>
		<!--slf4j及log4j2日志 -->
		<dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j.version}</version>
		</dependency>
		<!--桥接器:告诉slf4j使用Log4j2 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-slf4j-impl</artifactId>
			<version>${log4j2.version}</version>
			<exclusions>
				<exclusion>
					<artifactId>slf4j-api</artifactId>
					<groupId>org.slf4j</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<!--具体实现,log4j2 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>${log4j2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>${log4j2.version}</version>
		</dependency>

2,继承com.jfinal.log.Log

package cn.iborder.myJFinal.util;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.jfinal.log.Log;

public class Log4j2Log extends Log{
	private Logger log;
	
	public Log4j2Log(Class<?> clazz) {
		log = LogManager.getLogger(clazz);
	}
	
	public Log4j2Log(String name) {
		log = LogManager.getLogger(name);
	}

	@Override
	public void debug(String message) {
		log.debug(message);
	}

	@Override
	public void debug(String message, Throwable t) {
		log.debug(message, t);
	}

	@Override
	public void info(String message) {
		log.info(message);
	}

	@Override
	public void info(String message, Throwable t) {
		log.info(message, t);
	}

	@Override
	public void warn(String message) {
		log.warn(message);
	}

	@Override
	public void warn(String message, Throwable t) {
		log.warn(message, t);
	}

	@Override
	public void error(String message) {
		log.error(message);
	}

	@Override
	public void error(String message, Throwable t) {
		log.error(message, t);
	}

	@Override
	public void fatal(String message) {
		log.fatal(message);
	}

	@Override
	public void fatal(String message, Throwable t) {
		log.fatal(message, t);
	}

	@Override
	public boolean isDebugEnabled() {
		return false;
	}

	@Override
	public boolean isInfoEnabled() {
		return false;
	}

	@Override
	public boolean isWarnEnabled() {
		return false;
	}

	@Override
	public boolean isErrorEnabled() {
		return false;
	}

	@Override
	public boolean isFatalEnabled() {
		return false;
	}

}

3,实现com.jfinal.log.ILogFactory接口

package cn.iborder.myJFinal.util;

import com.jfinal.log.ILogFactory;
import com.jfinal.log.Log;

public class Log4j2Factory implements ILogFactory{

	public Log4j2Factory() {
		// TODO Auto-generated constructor stub
	}

	@Override
	public Log getLog(Class<?> clazz) {
		// TODO Auto-generated method stub
		return new Log4j2Log(clazz);
	}

	@Override
	public Log getLog(String name) {
		// TODO Auto-generated method stub
		return new Log4j2Log(name);
	}

}

4,配置JfinalConfig继承类

	@Override
	public void configConstant(Constants me) {
		// TODO Auto-generated method stub
		me.setDevMode(true);
		me.setLogFactory(new Log4jLogFactory());
	}

接下来就可以使用了

Log.getLog(this.getClass()).debug("hello world");

 

转载于:https://my.oschina.net/u/2321708/blog/1859926

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值