zoukankan      html  css  js  c++  java
  • 【JavaWeb】Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架(二)

    Log4j


     

    这个东西,大家都熟悉,就简单的介绍一下,算是一个抛砖引玉,因为我自己在Log日志的搭建方面,没有什么经验,但这东西确实是非常重要的,日后调Bug没有它基本不可能,如果有朋友有什么比较好的Log日志使用教程,还望可以告知一下。

    Log4j配置文件


    目录:Resource,文件名:log4j.properties

    新建一个log4j的配置文件,这个文件放在resource根目录下即可,貌似说是,项目启动的时候,会被自动加载,这个我就不懂了,因为我确实没有研究Log4j,只是网上看过几篇文章。

     1 #定义LOG输出级别
     2 log4j.rootLogger=INFO,Console,File
     3 #定义日志输出目的地为控制台
     4 log4j.appender.Console=org.apache.log4j.ConsoleAppender
     5 log4j.appender.Console.Target=System.out
     6 #可以灵活地指定日志输出格式,下面一行是指定具体的格式
     7 log4j.appender.Console.layout = org.apache.log4j.PatternLayout
     8 log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
     9 #文件大小到达指定尺寸的时候产生一个新的文件
    10 log4j.appender.File = org.apache.log4j.RollingFileAppender
    11 #指定输出目录
    12 log4j.appender.File.File = logs/ssm.log
    13 #定义文件最大大小
    14 log4j.appender.File.MaxFileSize = 10MB
    15 # 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
    16 log4j.appender.File.Threshold = ALL
    17 log4j.appender.File.layout = org.apache.log4j.PatternLayout
    18 log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH:mm:ss}][%c]%m%n
    log4j.properties

    Log4j的再封装工具


    目录:com.magic.rent.util,文件名:Log.java

    我个人有强迫症,不喜欢在每个类中都去创建一个logger对象,所以把这个东西封装成了静态方法,这个就主要是因人而异吧我觉得。

     1 package com.magic.rent.util;
     2 
     3 import org.apache.commons.logging.LogFactory;
     4 
     5 public class Log {
     6 
     7     public static void info(Object object, String tittle, String text) {
     8         org.apache.commons.logging.Log logger = LogFactory.getLog(object.getClass());
     9         String infoStart = "
    ————————————————————————————————————————————————————————[Info Start]——
    ";
    10         String infoEnd = "————————————————————————————————————————————————————————[Info   End]——
    ";
    11         StringBuffer stringBuffer = new StringBuffer(infoStart);
    12         stringBuffer.append("标题:" + tittle + "
    内容:")
    13                 .append(text + "
    ")
    14                 .append(infoEnd);
    15         logger.info(stringBuffer.toString());
    16     }
    17 
    18     public static void error(Object object, String tittle, String text, Throwable t) {
    19         org.apache.commons.logging.Log logger = LogFactory.getLog(object.getClass());
    20         String infoStart = "
    ————————————————————————————————————————————————————————[Info Start]——
    ";
    21         String infoEnd = "————————————————————————————————————————————————————————[Info   End]——
    ";
    22         StringBuffer stringBuffer = new StringBuffer(infoStart);
    23         stringBuffer.append("标题:" + tittle + "
    内容:")
    24                 .append(text + "
    ")
    25                 .append(infoEnd);
    26         logger.error(stringBuffer.toString(), t);
    27     }
    28 
    29     public static void debug(Object object, String tittle, String text) {
    30         org.apache.commons.logging.Log logger = LogFactory.getLog(object.getClass());
    31         String infoStart = "
    ————————————————————————————————————————————————————————[Info Start]——
    ";
    32         String infoEnd = "————————————————————————————————————————————————————————[Info   End]——
    ";
    33         StringBuffer stringBuffer = new StringBuffer(infoStart);
    34         stringBuffer.append("标题:" + tittle + "
    内容:")
    35                 .append(text + "
    ")
    36                 .append(infoEnd);
    37         logger.debug(stringBuffer.toString());
    38     }
    39 
    40 }
    Log.java

      这样写的实际调用起来,就是这种代码:

    Log.info(this, "过滤链接地址", "servletPath:" + servletPath);

      而打出来的日志效果,是这样子,我感觉看着很清晰...个人感觉而已- -

      可以看到,第一行输出的是打出日志的“类名”,

      后续开始就是正文内容,标题对应的是String Tittle这个参数,而内容对应的则是String text。

     

    恩,我在想要不要添加一个时间戳...当然加一个时间错并不难,有需要可以自行处理。那基本格式就是这样子了。

  • 相关阅读:
    firewalld防火墙
    MariaDB
    if,for,while
    自定义带图标input样式
    display:inline-block 和 float 水平排列区别?
    css中块元素和行内元素区别
    margin-top 为什么会影响父元素的 margin-top
    vertical-align 的理解
    什么是HTTP协议?
    Grunt 自动编译 Less 文件配置
  • 原文地址:https://www.cnblogs.com/wuxinzhe/p/5922896.html
Copyright © 2011-2022 走看看