• java Log4j封装,程序任何位置调用


    一般写log4j,每个类都会定义一个logger

    明显这样太麻烦了,

    然后封装了一下,明显好用多了。

     1 package tools;
     2 
     3 import java.io.IOException;
     4 import java.io.InputStream;
     5 import java.util.Properties;
     6 
     7 import org.apache.log4j.Level;
     8 import org.apache.log4j.Logger;
     9 
    10 public class LogUtil {
    11     private static final String LOG4J_PROPERITES_PATH = "log4j.properties";
    12     
    13     public static void debug(Object str_debug) {
    14         StackTraceElement stack[] = (new Throwable()).getStackTrace();
    15 
    16         Logger logger = Logger.getLogger(stack[1].getClassName());
    17         logger.log(LogUtil.class.getName(), Level.DEBUG, str_debug, null);
    18         //logger.debug(str_debug);
    19     }
    20     
    21     public static void info(Object str_info) {
    22         StackTraceElement stack[] = (new Throwable()).getStackTrace();
    23 
    24         Logger logger = Logger.getLogger(stack[1].getClassName());
    25         logger.log(LogUtil.class.getName(), Level.INFO, str_info, null);
    26         //logger.info(str_info);
    27     }
    28     
    29     public static void error(Object str_err) {
    30         StackTraceElement stack[] = (new Throwable()).getStackTrace();
    31 
    32         Logger logger = Logger.getLogger(stack[1].getClassName());
    33         logger.log(LogUtil.class.getName(), Level.ERROR, str_err, null);
    34         //logger.error(str_err);
    35     }
    36     
    37     @SuppressWarnings("unused")
    38     private static void logClean(String... clean_types) {
    39         if (clean_types.length == 0) {
    40             return ;
    41         }
    42         InputStream in = ClassLoader.getSystemResourceAsStream(LOG4J_PROPERITES_PATH);            
    43         Properties p = new Properties();  
    44         try {
    45             p.load(in);
    46         } catch (IOException e) {
    47             error("Properties 加载错误");
    48         }
    49         
    50         for (int i = 0; i < clean_types.length; i++) {
    51             String clean_type = clean_types[i];
    52             String file_path = null;
    53             switch(clean_type) {
    54             case "debug" :
    55                 file_path = p.getProperty("log4j.appender.D.File");
    56                 break;
    57             case "info" :
    58                 file_path = p.getProperty("log4j.appender.info.File");
    59                 break;
    60             case "error" :
    61                 file_path = p.getProperty("log4j.appender.E.File");
    62                 break;
    63             }
    64             FileUtil.deleteEveryThing(file_path);
    65         }        
    66     }
    67     
    68     public static void main(String[] args) {
    69         //logClean("debug", "info", "error");
    70     }
    71 
    72 }
  • 相关阅读:
    Python IDLE快捷键一览
    面试题——中
    面试题——君
    面试题——太(下)
    面试题——2面常见问题
    MYSQL数据库设计规范与原则
    字符串操作
    集合
    java-数组
    java异常处理机制
  • 原文地址:https://www.cnblogs.com/chenhuan001/p/6575102.html
Copyright © 2020-2023  润新知