日志提示

线上问题,需要看日志。

控制台可以打印Mybatis操作的SQL语句。

开发流程:

第一步:加入依赖

image.png

第二步:在项目的resources中加入log4j属性文件

image.png

第三步:演示

image.png

扩展了解

一、日志概念的介绍

Log4j由三个重要的组件构成:Loggers(日志记录器),Appenders(输出源)和Layouts(布局格式)。

三个核心概念:

公共类 Logger 负责处理日志记录的大部分操作。

公共接口 Appender 负责控制日志记录的输出。

公共抽象类 Layout 负责格式化Appender的输出

日志信息的优先级从高到低,分别用来指定这条日志信息的重要程度;

日志信息的输出目的地指定了日志将打印到控制台还是文件中;

而输出格式则控制了日志信息的显示内容。

image.png

log4j规定了默认的几个级别:

ALL

这里要说明一下:

1) 级别之间是包含的关系,意思是如果你设置日志级别是trace,则大于等于这个级别的日志都会输出。

2)这不同的级别的含义大家都很容易理解,这里就简单介绍一下:

trace: 是追踪,就是程序推进一下,你就可以写个trace输出,所以trace应该会特别多,不过我们可以设置日志级别不让他输出。

debug: 调试,我一般就只用这个作为最低级别,trace压根不用。 开发环境使用

info: 设置成INFO就是一些代码执行过程当中的跟踪消息等,也就是说比较重要的信息,这个用的最多了。 线上环境使用

warn: 有些信息不是错误信息,但是也要给程序员的一些提示,类似于eclipse中代码的验证有warnning(不算错误但是也请注意)。

error: 错误信息。用的也比较多。

fatal: 级别比较高了。重大错误,这种级别你可以直接停止程序了。

自定义样式

%c 输出所属的类目,通常就是所在类的全名

%C 输出Logger所在类的名称,通常就是所在类的全名

%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},%d{ABSOLUTE},%d{DATE}

%F 输出所在类的类名称,只有类名。

%l 输出语句所在的行数,包括类名+方法名+文件名+行数

%L 输出语句所在的行数,只输出数字

%m 输出代码中指定的讯息,如log(message)中的message

%M 输出方法名

%p 输出日志级别,即DEBUG,INFO,WARN,ERROR,FATAL

%r 输出自应用启动到输出该log信息耗费的毫秒数

%t 输出产生该日志事件的线程名

%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”

%% 用来输出百分号“%”

二、读取日志文件

这里是调试,所以是DBUG级别

Log4j中有一个根记录器rootLogger,它是所有Logger的父类。

并且日志记录器我们是可以写好多份的,每一份可以写不同的名字

比如我们的tomcat当中的日志文件 就是这个原理

log4j.rootLogger=DEBUG, Console ,logfile

这个是根日志记录器,除了它以外其它的都是它的子记录器

设置Logger输出级别和输出目的地

Console

log4j.appender.Console=org.apache.log4j.ConsoleAppender

会有不同的输出目的的,此处就是在控制台上面

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

确定一种输出的格式

log4j.appender.Console.layout.ConversionPattern=

具体的格式由这个表达式来格式化

%d{ABSOLUTE} %5p %t %c{2}:%L - %m%n

调试环境打印SQL

log4j.logger.java.sql.ResultSet=INFO

log4j.logger.org.apache=INFO

log4j.logger.java.sql.Connection=DEBUG

log4j.logger.java.sql.Statement=DEBUG

log4j.logger.java.sql.PreparedStatement=DEBUG

把日志信息输出到文件###

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.logfile.File=qf.log

log4j.appender.logfile.DatePattern = '.'yyyy-MM-dd

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

log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n

这个属性文件在控制台和具体的日志文件都做了日志输出,所以这里有2份日志。

修改盘符路径:注意有两个\

log4j.appender.logfile.File=D:\certs\qf.log

或者:

log4j.appender.logfile.File=D:/certs/qf.log

同时注意以后在Linux服务器上的路径(没有盘符)

/opt/qf/apache-tomcat-8.5.11-8060/logs

按照时间产生日志文件:

当天的日志信息记录在qf.log文件中

前一天的记录在名称为 qf.log.yyyy-mm-dd 的文件中。

需要修改系统日历做测试:

image.png

工作中效果:按照日期查看系统对应的日志,确认系统是否有故障。

image.png

下面是 log4j.properties

设置Logger输出级别和输出目的地

第一个参数设置的是输出级别 设置称为了测试级别

输出目的地设置了两个地方 第一个是控制台 第二个是输出文件

log4j.rootLogger=DEBUG, Console ,logfile

Console 这部分主要设置 输出的格式 以及设置sql的打印输出

log4j.appender.Console=org.apache.log4j.ConsoleAppender

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

log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

log4j.logger.java.sql.ResultSet=INFO

log4j.logger.org.apache=INFO

log4j.logger.java.sql.Connection=DEBUG

log4j.logger.java.sql.Statement=DEBUG

log4j.logger.java.sql.PreparedStatement=DEBUG

把日志信息输出到文件### 设置了输出文件名称 设置根据系统时间每天生成不同的日志文件

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.logfile.File= zyh.log

log4j.appender.logfile.DatePattern = '.'yyyy-MM-dd

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

log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n

使用Logger 打印输出在控制台 或者 日志文件

首先在需要使用Logger的

image.png

logger.info("我是测试输出啊");

输出如下:

image.png

linux error log 换行,日志提示相关推荐

  1. MySQL日志 - Error Log错误日志

    MySQL日志历史文章, <MySQL日志 - General Query Log> MySQL的错误日志,是我们排查问题的主要线索之一,引用GreatSQL技术社区的这篇文章<图文 ...

  2. nginx的error.log日志常见的几个错误解决方法

    nginx.conf里会有两个日志,分为access.log 和 error.log.其中这两个日志可以细化,一般来说在nginx目录下会有一个logs会保存,然后也可以在对应的server目录里可以 ...

  3. linux配置apache文件大小,linux下限制Apache日志access.log以及error.log文件大小

    如果网站开启了apache日志文件以及错误日志功能,那么很可能apache日志文件access.log在一段时间内就会很庞大至上百兆甚至几十个G,尤其大访问量的网站更是如此.error_log错误日志 ...

  4. 清除error.log、access.log并限制Apache日志文件大小的方法

    清除error.log.access.log并限制Apache日志文件大小的方法 Apache下的access.log和error.log文件从安装服务器到现在没有动过,今天突然discuz 的MYS ...

  5. mysql错误日志为aborting_MySQL 错误日志(Error Log)

    同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件.通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等. 这些日志能够帮助我们定位mysqld ...

  6. 图文结合带你搞懂MySQL日志之Error Log(错误日志)

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GreatSQL是MySQL的国产分支版本,使用上与MySQL一致. 作者:KAiTO 文章来源:社区原创 往期回顾: 图 ...

  7. mysql 错误 日志_MySQL 错误日志(Error Log)

    同大多数关系型数据库一样,日志文件是MySQL数据库的重要组成部分.MySQL有几种不同的日志文件,通常包括错误日志文件,二进制日志,通用日志,慢查询日志,等等.这些日志可以帮助我们定义mysqld内 ...

  8. mysql 5.7 mts_mysql5.7 中启用MTS后error log中大量Note日志分析

    mysql5.7,启用基于logical_clock的多线程复制,发现error日志增长很快,查看日志发现大量关于多线程复制的Note级别日志.1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  9. linux apache 大文件,Apache下error.log文件太大的处理方法

    Apache下error.log文件太大的处理方法 2019年05月03日 | 萬仟网网络运营 | 我要评论 清除error.log.access.log并限制apache日志文件大小的方法 有个客户 ...

最新文章

  1. NBT:线虫的工程细菌共生体提高对西方玉米根虫的生防潜力
  2. 近期热门领域新鲜数据集汇总!
  3. 8、计算机图形学——纹理的相关问题及解决办法
  4. 在app中从下向上滑动,以找到不在默认第一页的元素
  5. 项目进度计划表_十大项目管理工具模版~
  6. ACM公选课第八节DP基础3 2020.4.23-5.10补
  7. JavaScript实现希尔密码 算法(附完 整源码)
  8. c语言编写考试程序,c语言考试编写三个程序:1.从键盘输入一些字符,逐个把它们送到磁? 爱问知识人...
  9. String去重方法
  10. 华为智能手表WATCH GT2运动版和时尚版有什么区别?
  11. java块语句_Java™ 教程(表达式、语句和块)
  12. 显卡dos测试软件,A+N卡测试说明_早期显卡DOS版本
  13. word2019每页设置不同页眉
  14. 虚拟机主机服务器出现SSH已启用,ESXi去掉 SSH已经启用的警告信息
  15. 问卷量表调研结果 - data 2022.2.27周五
  16. 计算机虚拟机安装教程,教你电脑安装虚拟机教程
  17. 从大厂裸辞后,面阿里、字节全都挂掉,连货拉拉都不要自己...
  18. 怎么制作gif动态图 QQ动态表情包怎么制作
  19. 国腾GM7123C:功能RGB转VGA芯片方案简介
  20. 升级了鸿蒙资料还在吗,手机升级更新鸿蒙系统会清空数据吗?华为鸿蒙升级需要备份吗...

热门文章

  1. glibc降级后怎么恢复 linux_Linux(CentOS)GLIBC出错补救方式
  2. 打包 React 项目并在服务器运行。
  3. WCF 第二章 契约
  4. HTML5:理解head
  5. nginx rewrite 指令last break区别最详细的解释
  6. 大型网站系统架构系列:分布式消息队列(二)
  7. cassandra命令
  8. 将不确定变为确定~Flag特性的枚举是否可以得到Description信息
  9. 控制台打印汉字的方法
  10. 决策树算法原理(ID3,C4.5)