简单好用的日志封装

Loggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条日志信息的重要程度,明白这一点很重要,Log4j有一个规则:只输出级别不低于设定级别的日志信息,假设Loggers级别设定为INFO,则INFO、WARN、ERROR和FATAL级别的日志信息都会输出,而级别比INFO低的DEBUG则不会输出。

上代码,简单好用!

log4j.properties文件配置

base.logs.dir=D:/logs/test

log4j.rootLogger=DEBUG, stdout, logfile

log4j.category.org.springframework=ERROR

#log4j.category.org.apache=INFO

#log4j.category.org.apache=DEBUG

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender

log4j.appender.logfile.File=${base.logs.dir}/WEB-INF/log/myweb.log

log4j.appender.logfile.MaxFileSize=512KB

log4j.appender.logfile.MaxBackupIndex=5

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n


代码!

package com.wonders.superbatch.utils;

import org.apache.log4j.Logger;

import java.io.PrintWriter;

import java.io.Serializable;

import java.io.StringWriter;

/**

* @Author: zwj

* @Date: 2020/4/21 16:22

* @Version 1.0

*

* 日志记录类

*/

public class LogUtilsimplements Serializable{

    private static Loggerlog = Logger.getLogger(LogUtils.class);

/**

* 是否开启Debug

*/

    public static boolean isDebug =log.isDebugEnabled();

public static boolean isinfo =log.isInfoEnabled();

private static Stringdebug ="debug";

private static Stringinfo ="info";

private static Stringerror ="error";

private static Stringwarn ="warn";

/*** 获取输出信息的代码的位置 ***/

  private static Stringlocation ="";

public LogUtils(Class clazz) {

}

    /**

* 获取行号和传入类的信息

*/

  private static StackTraceElement[] stacks = Thread.currentThread().getStackTrace();

/**

* Debug 输出

        * @param

        * @param

        */

        public static void debug(Object object){

            if(!isDebug)

                return ;

try {

                String location =getLocation(object,debug);

}catch (Exception e){

                // TODO: handle exception

                e.printStackTrace();

}

}

        /**

* warn 输出

*/

        public static void warn(Object object){

            try {

                String location =getLocation(object,warn);

}catch (Exception e){

                // TODO: handle exception

                e.printStackTrace();

}

}

        /**

* 异常填充值输出

*/

        public static void  info(Object object){

            if(!isinfo)

                return ;

try {

                String location =getLocation(object,info);

}catch (Exception e){

                // TODO: handle exception

                e.printStackTrace();

}

}

    /**

* 异常填充值输出

*/

    public static void  error(Object object){

        try {

            String location =getLocation(object,error);

}catch (Exception e){

            // TODO: handle exception

            e.printStackTrace();

}

}

        /**

* 异常填充输出

*/

        public static void fmtError(Object object) {

}

    public  static  String getLocation(Object object,String type){

        location =stacks[2].getClassName() +"." +stacks[2].getMethodName()

                +"  [  " +stacks[2].getLineNumber() +"  ]  ";

/*** 是否是异常  ***/

        if (objectinstanceof Exception) {

            Exception e =(Exception) object;

StringWriter sw =new StringWriter();

e.printStackTrace(new PrintWriter(sw,true));

String str = sw.toString();

getType(location,type,str);

} else {

            getType(location,type,object.toString());

}

      return    location;

}

      public  static void  getType(String location,String type,String string){

            switch (type){

                case "debug":

                    log.debug(location+"[  "+string+"  ]");

                    break;

                case "info":

                    log.info(location+"[  "+string+"  ]");

                    break;

                case "warn":

                    log.warn(location+"[  "+string+"  ]");

                    break;

                case "error":

                    log.error(location+"[  "+string+"  ]");

                    break;

            }

}

}

你可能感兴趣的:(简单好用的日志封装)