【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 = "\n————————————————————————————————————————————————————————[Info Start]——\n";
10         String infoEnd = "————————————————————————————————————————————————————————[Info   End]——\n";
11         StringBuffer stringBuffer = new StringBuffer(infoStart);
12         stringBuffer.append("标题:" + tittle + "\n内容:")
13                 .append(text + "\n")
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 = "\n————————————————————————————————————————————————————————[Info Start]——\n";
21         String infoEnd = "————————————————————————————————————————————————————————[Info   End]——\n";
22         StringBuffer stringBuffer = new StringBuffer(infoStart);
23         stringBuffer.append("标题:" + tittle + "\n内容:")
24                 .append(text + "\n")
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 = "\n————————————————————————————————————————————————————————[Info Start]——\n";
32         String infoEnd = "————————————————————————————————————————————————————————[Info   End]——\n";
33         StringBuffer stringBuffer = new StringBuffer(infoStart);
34         stringBuffer.append("标题:" + tittle + "\n内容:")
35                 .append(text + "\n")
36                 .append(infoEnd);
37         logger.debug(stringBuffer.toString());
38     }
39 
40 }
Log.java
复制代码

 

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

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

 

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

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

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

 

 

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

posted @   梦游的龙猫  阅读(1299)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示