对log4j的简单封装
来源:互联网 发布:smartgit linux 安装 编辑:程序博客网 时间:2024/06/05 13:22
log4j使用起来有点麻烦,在不同的类里面都得创建一个实例,繁琐之余还会浪费内存,对于日后要更换其他的第三方日志jar工作量也很大,所以对其进行简单的封装,直接调用静态方法即可打印日志。
package com.core.utils;import java.util.HashMap;import java.util.Map;import org.apache.log4j.Logger;public class LogUtils { private static Map<String,Logger> loggerMap = new HashMap<String,Logger>(); public static void debug(Object message){ String className = getClassName(); Logger log = getLogger(className); if(log.isDebugEnabled()){ log.debug(message); } } public static void info(Object message){ String className = getClassName(); Logger log = getLogger(className); if(log.isInfoEnabled()){ log.info(message); } } public static void warn(Object message){ String className = getClassName(); Logger log = getLogger(className); log.warn(message); } public static void error(Object message){ String className = getClassName(); Logger log = getLogger(className); log.error(message); } /** * 获取最开始的调用者所在类 * @return */ private static String getClassName(){ Throwable th = new Throwable(); StackTraceElement[] stes = th.getStackTrace(); StackTraceElement ste = stes[2]; return ste.getClassName(); } /** * 根据类名获得logger对象 * @param className * @return */ private static Logger getLogger(String className){ Logger log = null; if(loggerMap.containsKey(className)){ log = loggerMap.get(className); }else{ try { log = Logger.getLogger(Class.forName(className)); loggerMap.put(className, log); } catch (ClassNotFoundException e) { e.printStackTrace(); } } return log; }}
阅读全文
0 0
- 对log4j的简单封装
- Log4j 配合 java 类的简单封装
- 对Freemarker的简单封装
- 对fmdb简单的封装
- 对NSURLConnection的简单封装
- 对AFNetworking的简单封装
- 对AFNetworking的简单封装
- 对mysql的简单封装
- 对recyclerview的简单封装
- 对webdriver的简单封装
- 对OKHttp3的简单封装
- 对okhttp的简单封装
- 对log4j的简单了解 之一
- Log4j简单封装及配置
- 对套接字简单的封装
- 对commons fileupload组件的简单封装
- 对commons fileupload组件的简单封装
- 对commons fileupload组件的简单封装
- json 与 xml 序列化和反序列化工具
- 华为软件开发云(DevCloud):免费可商用的项目管理工具
- SSH配置文件ssh_config和sshd_config区别
- 贪心算法
- url编码
- 对log4j的简单封装
- iOS多线程编程——GCD与NSOperation总结
- 微信朋友圈,QQ空间,微博等列表展示的功能实现
- 常用插件--bootstrap3-dialog
- WPF不同线程之间的控件的访问
- 第10周作业1(LeetCode1)
- python3使用requests包抓取并保存网页源码
- Linux虚拟网络之tun(三)隔离网络下的Raw转发
- 452. Minimum Number of Arrows to Burst Balloons Java解法