java Log4j封装,程序任何位置调用
一般写log4j,每个类都会定义一个logger
明显这样太麻烦了,
然后封装了一下,明显好用多了。
package tools; import java.io.IOException;
import java.io.InputStream;
import java.util.Properties; import org.apache.log4j.Level;
import org.apache.log4j.Logger; public class LogUtil {
private static final String LOG4J_PROPERITES_PATH = "log4j.properties"; public static void debug(Object str_debug) {
StackTraceElement stack[] = (new Throwable()).getStackTrace(); Logger logger = Logger.getLogger(stack[1].getClassName());
logger.log(LogUtil.class.getName(), Level.DEBUG, str_debug, null);
//logger.debug(str_debug);
} public static void info(Object str_info) {
StackTraceElement stack[] = (new Throwable()).getStackTrace(); Logger logger = Logger.getLogger(stack[1].getClassName());
logger.log(LogUtil.class.getName(), Level.INFO, str_info, null);
//logger.info(str_info);
} public static void error(Object str_err) {
StackTraceElement stack[] = (new Throwable()).getStackTrace(); Logger logger = Logger.getLogger(stack[1].getClassName());
logger.log(LogUtil.class.getName(), Level.ERROR, str_err, null);
//logger.error(str_err);
} @SuppressWarnings("unused")
private static void logClean(String... clean_types) {
if (clean_types.length == 0) {
return ;
}
InputStream in = ClassLoader.getSystemResourceAsStream(LOG4J_PROPERITES_PATH);
Properties p = new Properties();
try {
p.load(in);
} catch (IOException e) {
error("Properties 加载错误");
} for (int i = 0; i < clean_types.length; i++) {
String clean_type = clean_types[i];
String file_path = null;
switch(clean_type) {
case "debug" :
file_path = p.getProperty("log4j.appender.D.File");
break;
case "info" :
file_path = p.getProperty("log4j.appender.info.File");
break;
case "error" :
file_path = p.getProperty("log4j.appender.E.File");
break;
}
FileUtil.deleteEveryThing(file_path);
}
} public static void main(String[] args) {
//logClean("debug", "info", "error");
} }
java Log4j封装,程序任何位置调用的更多相关文章
- 《疯狂Java:突破程序员基本功的16课》读书笔记-第二章 对象与内存控制
Java内存管理分为两个方面:内存分配和内存回收.这里的内存分配特指创建Java对象时JVM为该对象在堆内存中所分配的内存空间.内存回收指的是当该Java对象失去引用,变成垃圾时,JVM的垃圾回收机制 ...
- java经典小程序
1,编写程序,判断给定的某个年份是否是闰年. 闰年的判断规则如下: (1)若某个年份能被4整除但不能被100整除,则是闰年. (2)若某个年份能被400整除,则也是闰年. import java.ut ...
- Java面向对象㈠ -- 封装
Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:priva ...
- java JNI 的实现(2)-java和C/C++的相互调用.
目录 概述 一,java代码 二,稍微注意通过javah生成的'C/C++'.h头文件和源java代码的关系 三,在C/C++中实现java的native方法(完整C/C++) 1,修改age,即Ja ...
- 简单java web应用程序搭建与部署
1. 准备工作 工具:tomcat.editplus.jdk.windows操作系统 操作:在windows操作系统上安装jdk.tomcat.editplus,配置JAVA_HOME,Path,CL ...
- java log4j基本配置及日志级别配置详解
java log4j日志级别配置详解 1.1 前言 说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis.rabbitMQ.SSM框架的相关面试题以及自己做过的一些项目回顾 ...
- Java10-java语法基础(九)——java的封装性
Java10-java语法基础(九)——java的封装性 一.Java的三大特性:封装.多态.继承 封装:通过类封装对象的数据成员和成员方法,保证只有可信的类或者对象能够访问这些方法和数据成员,对不可 ...
- java的GUI程序的基本思路是以JFrame为基础
JFrame – java的GUI程序的基本思路是以JFrame为基础,它是屏幕上window的对象,能够最大化.最小化.关闭. JPanel – Java图形用户界面(GUI)工具包swing中的面 ...
- Java异常封装
转载: Java异常封装 Java里面的异常在真正工作中使用还是十分普遍的.什么时候该抛出什么异常,这个是必须知道的. 当然真正工作里面主动抛出的异常都是经过分装过的,自己可以定义错误码和异常描述. ...
随机推荐
- Tomcat 添加为系统服务 开机自动启动
http://jingyan.baidu.com/article/a65957f4b12b8724e77f9b5a.html Tomcat是Apache 软件基金会(Apache Software F ...
- uboot中log处理
位图或logo和开机显示画面,是两个完全不同的东西. logo显示uboot相关信息,如版本号等. 开机画面是用户下载到固定位置后uboot加载的. 1.开机画面 在uboot中使用splash sc ...
- 使用maven创建工程报错Could not resolve archetype org.apache.maven.archetype
错误: Could not resolve archetype org.apache.maven.archetypes:maven-archetype-quickstart:1.1 from any ...
- SQL与NoSQL的CRUD对照
SQL与NoSQL的CRUD对照 flyfish 2015-7-21 Create, Read, Update and Delete (CRUD) SQL方式 查 SELECT 列名称 FROM 表名 ...
- WPF教程三:布局之WrapPanel面板
WrapPanel:环绕面板 WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列,当长度或高度不够时就会自动调整进行换行,后续排序按照从上至下或从右至左的顺序进行. Orientatio ...
- 可变长度子网掩码(VLSM)在子网划分中的应用
在学习可变长度子网掩码时,必须先熟练掌握二进制与十进制的转化.计算机中数据的单位(字节.位)等知识. 一.什么是可变长度子网掩码? 要理解可变长度子网掩码,先要理解子网掩码:要理解子网掩码,先要理解I ...
- C++异常抛出与捕获及处理
一.异常 迄今为止,我们处理程序中的错误一般都是用if语句测试某个表达式,然后处理错误的特定义代码. C++异常机制使用了三个新的关键字 (SEH(结构化异常处理)) try ──标识可能出现 ...
- e554. 在浏览器状态栏中显示信息
// See also e551 精简的Applet applet.showStatus("Your Message Here"); Related Examples
- Shell 获取Shell所在目录
SHELL_PATH=$(cd ")";pwd) echo $SHELL_PATH
- c++ 向main传递参赛
1.今天写了个批处理文件 准备向main传递参赛 发现在vs2008运行正常 vs2010运行只有首字母 2.需要在项目--属性--常规-字符集里面设置成多字节就好了,以前是unicode 3.因为 ...