linux error log 换行,日志提示

news/2024/7/5 4:08:18

日志提示

线上问题,需要看日志。

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

开发流程:

第一步:加入依赖

1dc85f8319d0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

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

1dc85f8319d0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

第三步:演示

1dc85f8319d0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

扩展了解

一、日志概念的介绍

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

三个核心概念:

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

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

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

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

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

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

1dc85f8319d0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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 的文件中。

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

1dc85f8319d0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

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

1dc85f8319d0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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的

1dc85f8319d0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

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

输出如下:

1dc85f8319d0?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png


http://lihuaxi.xjx100.cn/news/239129.html

相关文章

快速 开发平台 架构_快速介绍清洁架构

快速 开发平台 架构by Daniel Deutsch由Daniel Deutsch 快速介绍清洁架构 (A quick introduction to clean architecture) In an open source project I started to contribute to, the concept of “clean architecture” was brought to me.在一个我开始参与的开源项目中 &a…

安装Python的wx库

2019独角兽企业重金招聘Python工程师标准>>> 遇到问题1:pip不是内部或外部命令,也不是可运行的程序 解决办法:修改环境变量:变量值改为:C:\Python27\;C:\Python27\Scripts; 遇到问题2:wxPython.…

Solaris下ftp配置(初稿-待补充)

1.自带ftp版本 Version wu-2.6.2 2.ftp启动与停止 启动并启用ftp: svcadm enable network/ftp 停止并禁用ftp: svcadm disable network/ftp 3.使某个系统用户无法使用ftp或者恢复使用ftp vi /etc/ftpd/ftpusers 向其中添加要禁止使用ftp的…

c语言程序学生成绩系统论文,c语言程序设计-学生成绩管理系统论文.doc

c语言程序设计-学生成绩管理系统论文C语言程序设计课程设计报告- PAGE 11 -中南民族大学工商学院电子信息与计算机技术系项目名称: 学生成绩管理系统学生姓名:学 号:班 级:指导教师:20年月日学生成绩管理系统目录TOC \…

three.ar.js_我们如何通过AR.js使产品吉祥物栩栩如生

three.ar.jsby Mateusz Tarnaski由Mateusz Tarnaski 我们如何通过AR.js使产品吉祥物栩栩如生 (How we brought our product mascot to life with AR.js) Short answer: using a browser-based Augmented Reality (AR) application. For the long answer, read below.简短答案&…

多线程概念与编程

一、多线程的生命周期:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead) 1、新建状态:程序初始化一个Thread时,线程处于新建状态 2、就绪状态:线程Thread调用s…

spring @component的作用

转自:https://www.cnblogs.com/lyjing/p/8427832.html1、controller 控制器(注入服务) 2、service 服务(注入dao) 3、repository dao(实现dao访问) 4、component (把普通pojo实例化到…

白盒测试逻辑覆盖c语言代码,白盒测试实例--11逻辑覆盖测试 - aidisheng的专栏 - CSDN博客...

逻辑覆盖测试是通过对程序逻辑结构的遍历实现程序的覆盖。从覆盖源代码的不同程度可以分为以下六个标准:语句覆盖、判定覆盖(又称为分支覆盖)、条件覆盖、判定-条件覆盖(又称为分支-条件覆盖)、条件组合覆盖和路径覆盖。先看一下具体例子的源代码(C语言)&#xff1a…