文档章节

Jfinal使用log4j2打印日志

iborder
 iborder
发布于 07/20 11:02
字数 380
阅读 37
收藏 0

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");

 

© 著作权归作者所有

共有 人打赏支持
iborder
粉丝 4
博文 73
码字总数 48998
作品 0
揭阳
程序员
私信 提问
JFinal1.9参数丢失

@JFinal 你好,想跟您请教个问题: 我们公司的项目使用的是JFinal1.9版本,发现会偶尔(同样的访问也不是每次都出现)出现参数丢失的问题,这个问题出现有快一年了,今天跟进了下,发现tomca...

桀鹰
2016/12/29
256
3
如何让jfinal不自动获取所有参数

@JFinal 你好,想跟你请教个问题:由于需要将整个参数传加密后进行post传输,不要多的变量名,所以我这边接口在接收参数的时候必须通过request的io流来读取所有参数信息。但我试过之后发现读...

loda0128
2014/11/05
583
1
JFinal Log4j2 系统500错误日志无输出

也不知道何年何月,加了何种包,或者改动了什么之后,现在JFinal启动的时候,Log4j就有点问题了: 然后,程序中如果出现Nullpointer之类的错误,系统可以跳转到500页面,但是后台日志没有显示...

子矜
2015/03/26
1K
2
JFinal是否能支持logback?

@JFinal 你好,想跟你请教个问题: 我配置了logback,但是程序中的异常栈被JFinal的框架吸收了,并不能打印在log中,我看JFinal支持log4j和JDKLog。如何实现使用logback还能把异常栈打印出来...

davidbdj
2016/03/16
853
2
jfinal使用maven-tomcat7-plugin启动,无法初始化配置文件

我尝试使用maven的tomcat-plugin启动jfinal,但是用于jfinal的配置文件没有被初始化(在配置文件中我尝试使用System.out.println打印一些信息,但是使用该tomcat-plugin无法看到打印结果,但是...

风花狂月
2017/01/05
387
5

没有更多内容

加载失败,请刷新页面

加载更多

EOS docker开发环境

使用eos docker镜像是部署本地EOS开发环境的最轻松愉快的方法。使用官方提供的eos docker镜像,你可以快速建立一个eos开发环境,可以迅速启动开发节点和钱包服务器、创建账户、编写智能合约....

汇智网教程
今天
10
0
《唐史原来超有趣》的读后感优秀范文3700字

《唐史原来超有趣》的读后感优秀范文3700字: 作者:花若离。我今天分享的内容《唐史原来超有趣》这本书的读后感,我将这本书看了一遍之后就束之高阁了,不过里面的内容一直在在脑海中回放,...

原创小博客
今天
17
0
IC-CAD Methodology知识图谱

CAD (Computer Aided Design),计算机辅助设计,指利用计算机及其图形设备帮助设计人员进行设计工作,这个定义同样可以用来近似描述IC公司CAD工程师这个岗位的工作。 早期IC公司的CAD岗位最初...

李艳青1987
今天
17
0
CompletableFuture get方法一直阻塞或抛出TimeoutException

问题描述 最近刚刚上线的服务突然抛出大量的TimeoutException,查询后发现是使用了CompletableFuture,并且在执行future.get(5, TimeUnit.SECONDS);时抛出了TimeoutException异常,导致接口响...

xiaolyuh
今天
8
0
dubbo 搭建与使用

官网:http://dubbo.apache.org/en-us/ 一,安装监控中心(可以不安装) admin管理控制台,monitor监控中心 下载 bubbo ops 这个是新版的,需要node.js环境,我没有就用老版的了...

小兵胖胖
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部