初识log4j与ssm整合

一 . log4j 与 日志

  • 什么是log4j

Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

  • 什么是日志

日志文件是用于记录系统操作事件的记录文件或文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。

在计算机中,日志文件是记录在操作系统或其他软件运行中发生的事件或在通信软件的不同用户之间的消息的文件。记录是保持日志的行为。在最简单的情况下,消息被写入单个日志文件。 许多操作系统,软件框架和程序包括日志系统。广泛使用的日志记录标准是在因特网工程任务组(IETF)RFC5424中定义的syslog。 syslog标准使专用的标准化子系统能够生成,过滤,记录和分析日志消息。

  • 我自己的理解

以上是百度来的解释,看起来太高大上了,我说下我自己的理解.日志,我认为就是流水账日记,你做的系统都干了什么,你想知道,你不能直接问它吧,你也不可能天天盯着它看,况且你也看不过来,那么,你在做系统的时候你就得教会他写日记,配置日志,就是你教它怎么写这个日记.日记里都写什么,写完的日记放在哪里,方便你随时检查.

那么log4j我理解为就是一个帮助你教会系统写日记的一个工具,我们想让我们的系统自己能够写日记,那么我们就可以用log4j这个工具.

二 . log4j与ssm整合

  • 参考资料:https://www.w3cschool.cn/java/log4j-installation.html
  • 首先你得有一个配置好的ssm项目:https://github.com/TheBiggestMouse/web_3_1
  • 在项目的pom.xml中添加log4j的依赖包
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
</dependency>
  • 在srm/main/resources文件夹下创建log4j.properties的配置文件,本示例用的是log4j.properties配置,另外还有xml配置,请自行学习.下面是比较简单的日志配置,只配置了将日记写到控制台,和D盘下的log4j.log文件,每个配置是什么意思都写在注解中了,更详细的配置请参考:http://www.blogjava.net/zJun/archive/2006/06/28/55511.html
# Root logger option 这个是log4j的根配置,必不可少的,其中DEBUG是日志的级别(ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFF),
# 什么意思呢?拿个栗子,你是一家公司老总,财务支出的时候总得跟你说一声吧,那总不能支出一块钱都得跟你汇报吧,那你不是忙死了,所
# 以呢,你就定个级别,你告诉财务支出100万以上告诉我就行了,过两天你发现根本就没有100万以上的支出,你又跟财务说10万以上就得告诉我,
# 结果又过两天你发现10万以上的支出也很少,但是账户的钱确少的很多,你又跟财务说1万以上的就得告诉我,又过了两天你要对公司的财务支出
# 全部做到心中有数,你告诉财务1块钱的支出你也得告诉我.这就是级别,1<1万<10万<100万).系统将什么级别的信息记录下来,你就设置对应的级别.
# stdout(百度翻译:标准输出),自行测试一下,不加上它的话,控制台输出不了内容,file将日志的信息以文件的形式保存.
log4j.rootLogger=DEBUG, stdout, file# Redirect log messages to console  使用org.apache.log4j.ConsoleAppender类输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# 相当于你用System.out.print()在控制台打印,如果配置成System.err,那么就相当于你用System.err.println()进行打印(都是红色),但是不一定换行,我没试过
log4j.appender.stdout.Target=System.out
# 使用org.apache.log4j.PatternLayout类设置输出的格式
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n 配置输出的格式,最后一个%m%n 配置log4j以添加换行符.%L设置从记录请求的行号.
# %c{1}引用通过 getLogger()设置的日志记录名称.%-5p设置日志记录优先级,如DEBUG或ERROR.你可以自己打印出来之后再试着去掉一些配置看看效果
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n# Redirect log messages to a log file, support file rolling.  使用org.apache.log4j.RollingFileAppender类输出文件,
# 这个类可以追加文件,什么意思?按我们的配置举例,MaxFileSize=5MB,当你的日志文件大小达到5mb的时候,他会在重新创建一个文件,最多创建多少个呢?
# MaxBackupIndex=10,配置是多少就创建多少.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\log4j.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
  • 有的博客说ssm项目整合log4j需要配置监听,但是我这个没有配置,可能是版本问题,这个不太了解.以后遇到再说,下面代码是其它博客说在web.xml中配置监听和指定配置文件的位置的.我没有用.如果你的项目配置不起作用可以尝试一下.
<context-param><param-name>log4jConfigLocation</param-name><param-value>classpath:log4j.properties</param-value></context-param><context-param><param-name>log4jRefreshInterval</param-name><param-value>60000</param-value></context-param><!--log4j配置监听--><listener><listener-class>org.springframework.web.util.Log4jConfigListener</listener-class></listener>
---------------------
作者:LoveM生活美好
来源:CSDN
原文:https://blog.csdn.net/gjm15652957971/article/details/79174048
版权声明:本文为博主原创文章,转载请附上博文链接!

三. 如何在项目中使用log4j

  • 日志根据自己项目实际需求定义需要记录什么,我这里只写一个最简单的例子.
  • 在首页创建一个请求,发送到控制器,能够跳转到一个页面就可以.在控制器中声明日志操作类,在控制器方法中记录跳转操作.
  • 然后查看控制台是否打印日志信息,是否生成日志文件.下面是控制器中的代码.
package com.lgf.csdn_lesson003ssm_log4j.testLog4j.controller;import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;/***  描述: 跳转登录页,测试日志类能否记录登录操作*  作者: 郎国峰 *  时间: 2019年4月18日 上午10:49:21*/
@Controller
@RequestMapping("test")
public class LoginController {//声明日志操作类Loggerstatic Logger log = Logger.getLogger(LoginController.class.getName());@RequestMapping("logintest")public String testLogin() {//记录登录操作log.debug("跳转登录页");return "login";}
}

博客仅做学习交流使用,并非课件,仁者见仁,不喜勿喷.如果您觉得有用,请点个赞,谢谢!

源码地址: https://github.com/TheBiggestMouse/csdn_lesson003ssm_log4j.git

初识log4j与ssm整合相关推荐

  1. SSM整合+分页+Druid+CRU+log4J+junit+事务+Json+Bootstrap入门教程总览目录

    总目录 1.快速入门SSM整合配置建立第一个SSM项目模板 https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/85052628 2.实 ...

  2. SSM整合时Maven项目的pom.xml版本兼容的代码备份

    场景 jdk:1.8 Tomcat:7.0 本地mysql:8.0 Eclipse:Eclipse Jee Photon Spring:4.3.8 AOP:1.8.0 mybatis:3.3.0 My ...

  3. java框架ssm整合_SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)

    使用 SSM ( Spring . SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方.之前没 ...

  4. SpringMVC以及SSM整合

    本人才疏学浅,如有错误欢迎批评!转载请注明出处:https://www.cnblogs.com/lee-yangyaozi/p/11226145.html SpringMVC概述 Spring Web ...

  5. SSM整合简单登录案例

    [1] 在数据库中创建用户信息表 [2] 搭建SSM开发环境 使用idea创建登录功能的web项目 在web-inf目录下创建lib文件夹,并导入SSM的jar包. 在src下创建MVC的包结构 在s ...

  6. ssm访问html乱码_SpringMVC+jdbc和SSM整合

    Spring JDBC 的使用 为了避免直接使用JDBC而带来的复杂且冗长的代码,Spring提供了一个强有力的模板类---JdbcTemplate来简化JDBC操作 web.xml配置那些内容 1. ...

  7. ssm如何在mapper插入实时的时间_第一个ssm整合

    刚学完狂神说的ssm框架,花了两天时间把狂神的ssm整合项目写完 狂神视频 实现功能 bilibili视频地址 基本骨架 1.环境 IDEA MySQL 8.0 Tomcat 7 Maven 3.6 ...

  8. mybatis+spring+springmvc ssm整合

    文章目录 mybatis 开发我的第一个mybatis程序 关于mybatis的核心API:SqlSession对象. mybatis连接数据库操作 log4j jackson parameterTy ...

  9. ssm整合说明与模板-Spring Spring MVC Mybatis整合开发

    ssm整合说明 spring+spring mvc+mybatis 说明 源码下载 由于之前存在ssh框架,spring+struts+hibernate,其中spring负责aop与ioc,所以一般 ...

最新文章

  1. 人机融合智能:人工智能3.0
  2. python中dataframe合并列名日期到季度_python 处理dataframe中的时间字段方法
  3. 正经科普:12306能扛得住明星并发出轨级的流量吗?
  4. 动态IL织入框架Harmony简单入手
  5. python爬虫requests源码链家_python爬虫——爬取链家房价信息(未完待续)
  6. python写的crf训练代码
  7. Tomcat优化详细教程
  8. 新人Unity下载安装
  9. python爬虫大众点评_Python爬虫丨大众点评数据爬虫教程(1)
  10. 金鹰卡通java面试_两则电视栏目招募通告,来试试?!
  11. 电脑读卡器,读卡器在电脑怎么打开_读卡器插在电脑上显示不出来如何修复-win7之家...
  12. Hadoop单机版安装
  13. centos yum
  14. 打开本地html加载网页慢,电脑检查网速正常但打开网页慢如何解决
  15. Win10怎么关闭开机启动项
  16. 如何用函数求出身份证号码中的出生日期——CONCATENATE、MID函数的使用方法
  17. 时间转换 秒(s)转 ()天 ()小时() 分钟 ()秒
  18. 扫雷——完整版!!!!!!
  19. 【IDEA】快捷重写equals方法
  20. 工业相机(面阵和线阵)和镜头选型

热门文章

  1. css sass的@mixin 与 @include引用
  2. Ubuntu18.04使用anaconda3安装tensorflow-gpu、pytorch
  3. 外媒:华为手机测试 Aurora OS
  4. 【MyBatis】进一步理解choose、when、otherwise标签
  5. VPS SPS PPS
  6. openGauss中Schema赋权小试
  7. 充满未知的在线招聘行业,前程无忧如何持续盈利
  8. 十几减9的口算题_一年级数学口算题:十几减9(可下载)
  9. 什么是PR值?提高PR值有哪些方法?
  10. PYthon--(文件I/O)