欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java日志

程序员文章站 2022-03-09 21:53:44
...

java日志

概述

项目开发中,记录错误日志有以下好处:

  1. 方便调试
  2. 便于发现系统运行过程中的错误
  3. 存储业务数据,便于后期分析

日志输出级别

logger.debug(); //指出信息事件

logger.info(); 程序运行过程

logge.warn(); 表名会出现潜在错误的情形(未知的错误)

logger.error(); 指出虽然发生错误事件,但是不影响程序的运行

logger.fatal(); 指出严重的错误事件将会导致程序退出,

debug<info<warn<error<fatal

通过修改日志文件器log4j.properties 将只输出高于或者等于他级别信息

例如log4j.rootLogger= debug,console,logfile

如果设置info 那么只会打印info,warn,error,fatal级别内容 而debug不会打印

根据实际情况进行使用 主要区分 不同情况出现的问题

虽然 随便使用不会有问题 但是 这影响到 看日志的人 这到底是bug 还是 正常执行时进行的操作 还是什么 ??

实现日志的步骤

需要的依赖

log4j-1.2.17.jar

下载地址:

http://download.huitoushian.cn/index.jsp?path=D%3A\wwwroot\doc.huitoushian.cn\jar\&filename=log4j-1.2.17.jar

Maven

  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
  </dependency>

log4j.properties配置文件

## 设置Logger输出级别和输出目的地(可以指定多个目的地) ###
### 一般在开发的时候使用debug,开发完成后使用error ###
### 他们对应的是输出信息的级别,级别越低信息输出越详细,使用debug级别的时候,info中的信息也能输出,使用info的时候,debug对应的信息显示不出来 ###
### 日志记录器输出级别:fatal>error>warn>info>debug ###
### 后面的两个对应下方的两处 一处打印在控制台 另一处打印在日志文件里
log4j.rootLogger=debug,console,logFile

#############################################################################################
### 把日志信息输出到控制台 ###
log4j.appender.console=org.apache.log4j.ConsoleAppender
### 信息打印到System.err上,红色 ###
log4j.appender.console.Target=System.out
### 指定日志在控制台上输出的布局类型  采用指定格式的类型 ###
log4j.appender.console.layout=org.apache.log4j.PatternLayout
### %r:输出自应用启动到输出该 log信息耗费的毫秒数    %x表示信息输出时左对齐 
### %5p:%p表示输出日志信息优先级,即 DEBUG, INFO, WARN, ERROR, FATAL 中间的5控制最小的宽度为5
### %F:%L %F:输出日志消息产生时所在的文件名称   %L:输出代码中的行号
### %l:输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及行数
### %m:输出代码中指定的消息,产生的日志具体信息  %n:输出一个回车换行符, Windows 平台为"\r\n", Unix 平台为"\n"输出日志信息换行
log4j.appender.console.layout.ConversionPattern= -> (%r ms) - %d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n
#############################################################################################

#############################################################################################
### 把日志信息输出到文件:logt.log 注意:如果有路径\符号一定要写成\\ 否则会被转义  ###
log4j.appender.logFile=org.apache.log4j.FileAppender
### 指定日志输出的文件名 ###
log4j.appender.logFile.File=D:\\log.log
### 指定转换模式 ###
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
###log4j.appender.logFile.layout.ConversionPattern= -> (%r ms) - %d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n
log4j.appender.logFile.layout.ConversionPattern= -> (%r ms) - %d{yyyy-MM-dd HH:mm:ss}%x[%5p]%l %m%n
#############################################################################################

这里注意 log4j.appender.logFile.File= 这里是你日志存放的地方

其他的几乎不用动

  1. 添加log4j依赖和log4j配置文件

    依赖要放在lib目录下并且解析

    配置文件要放在resource目录下

  2. 然后修改 文件 的log4j.appender.logFile.File=路径

    路径格式不要是中文 不然会找不到路径 路径分割符一定要\\

    log4j.appender.logFile.File=C:\\Users\\log.log

  3. 在使用的时候 导入import org.apache.log4j.Logger;

    特别注意不要导入错误了

  4. 添加静态成员属性

    public static Logger logge=Logger.getLogger(当前类.class);

然后就可以通过logge.xxx来写日志了

测试:

package cn.htsa.www.test;
import org.apache.log4j.Logger;
import org.junit.Test;
public class test {
public static Logger logge=Logger.getLogger(test.class);

    @Test
    public void showriz() {
        logge.debug("debug");
        logge.info("info");
        logge.warn("warn");
        logge.error("error");
        logge.fatal("fatal");
    }

}


本地D:下的,log.log文件内显示结果

-> (0 ms) - 2020-06-22 18:04:43[DEBUG]cn.htsa.www.test.test.showriz(test.java:19) debug
-> (7 ms) - 2020-06-22 18:04:43[ INFO]cn.htsa.www.test.test.showriz(test.java:20) info
-> (8 ms) - 2020-06-22 18:04:43[ WARN]cn.htsa.www.test.test.showriz(test.java:21) warn
-> (8 ms) - 2020-06-22 18:04:43[ERROR]cn.htsa.www.test.test.showriz(test.java:22) error
-> (8 ms) - 2020-06-22 18:04:43[FATAL]cn.htsa.www.test.test.showriz(test.java:23) fatal

打印的日志信息 格式

输出日志毫秒 日期时间 日志级别 文件路径.文件位置.方法 输出日志的行号

(行号有可能发生轻度偏移和实际位置不一致 ,但是就在那一片找找就能找到)

点赞 收藏加 关注