Log4j 下载地址


Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件

log4j-1.2.17.jar:https://repo1.maven.org/maven2/log4j/log4j/1.2.17/log4j-1.2.17.jar

Maven

<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

文件大小分割日志文件

效果如下

logs
log.log
log.log.1
log.log.2
log.log.3

log4j.properties 配置文件

### 将等级为debug的日志输出到console和file, console和file的定义在下面 ###
log4j.rootLogger = DEBUG,console,file ### console 配置输出到控制台 ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold = DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = [%c] - %m%n
#log4j.appender.console.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n ### file 配置输出到文件 ###
### RollingFileAppender: 以文件大小分割达到指定大小就产生新文件, MaxFileSize: 指定文件大小, MaxBackupIndex: 最多保存多少个文件 ###
log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.MaxFileSize = 10kb
log4j.appender.file.MaxBackupIndex = 10
log4j.appender.file.File = logs/log.log
log4j.appender.file.Threshold = DEBUG
log4j.appender.file.Append = true
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = [%p] [%d{yyyy-MM-dd HH:mm:ss}] [%c]%m%n
#log4j.appender.file.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 设置输出sql的级别,其中logger后面的内容全部为jar包中所包含的包名 ###
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
#log4j.logger.java.sql.Connection=DEBUG

以日期分割每天产生一个日志文件

效果如下

logs
log.log
log.log_2021-01-15.log
log.log_2021-01-16.log
log.log_2021-01-17.log

log4j.properties 配置文件

### 将等级为debug的日志输出到console和file, console和file的定义在下面 ###
log4j.rootLogger = DEBUG,console,file ### console 配置输出到控制台 ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.Threshold = DEBUG
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern = [%c] - %m%n
#log4j.appender.console.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n ### file 配置输出到文件 ###
### DailyRollingFileAppender: 以日期分割每天产生一个文件, DatePattern: 日志文件名称格式 ###
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.file.File = logs/log.log
log4j.appender.file.Threshold = DEBUG
log4j.appender.file.Append = true
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = [%p] [%d{yyyy-MM-dd HH:mm:ss}] [%c]%m%n
#log4j.appender.file.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n ### 设置输出sql的级别,其中logger后面的内容全部为jar包中所包含的包名 ###
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
#log4j.logger.java.sql.Connection=DEBUG

自定义信息输出到日志文件

  1. 在要输出日志的类中加入 Log4j

  2. 包一定不要导错,导包: import org.apache.log4j.Logger;

  3. 日志对象, 参数为当前类的class

static Logger logger = Logger.getLogger(UserMapperTest.class);
  1. 使用
import org.apache.log4j.Logger;
import org.junit.Test; public class UserMapperTest {
static Logger logger = Logger.getLogger(UserMapperTest.class); @Test
public void testLog4j() {
logger.info("UserMapperTest testLog4j info --> 日志输出");
logger.debug("UserMapperTest testLog4j debug --> 日志输出");
logger.error("UserMapperTest testLog4j error --> 日志输出");
}
}

运行完可以在日志文件中看到我们输出的信息

[DEBUG] [2021-01-17 00:07:18] [com.pro.dao.UserMapper.getUserById]==>  Preparing: select * from users where id = ?
[DEBUG] [2021-01-17 00:07:18] [com.pro.dao.UserMapper.getUserById]==> Parameters: 1(Integer)
[DEBUG] [2021-01-17 00:07:18] [com.pro.dao.UserMapper.getUserById]<== Total: 1
[INFO] [2021-01-17 00:15:01] [com.pro.dao.UserMapperTest]UserMapperTest testLog4j info --> 日志输出
[DEBUG] [2021-01-17 00:15:01] [com.pro.dao.UserMapperTest]UserMapperTest testLog4j debug --> 日志输出
[ERROR] [2021-01-17 00:15:01] [com.pro.dao.UserMapperTest]UserMapperTest testLog4j error --> 日志输出

Log4j配置按照文件大小和日期分割日志文件的更多相关文章

  1. log4j配置参数详解——按日志文件大小、日期切分日志文件

    项目中尽管对log4j有基本的配置,例如按天生成日志文件以作区分,但如果系统日志文件过大,则就需要考虑以更小的单位切分或者其他切分方式.下面就总结一下log4j常用的配置参数以及切分日志的不同方式. ...

  2. log4net 既要按日期分割日志文件,又要按文件大小分割。

    <appender name="DebugAppender" type="log4net.Appender.RollingFileAppender"> ...

  3. log4j配置不同的类多个日志文件

    <Configuration status="INFO"> <Appenders> <Console name="STDOUT" ...

  4. 使用cronolog按日期分割日志

    cronologcronolog是一个简单的过滤程序从标准输入读取日志文件条目,每个条目写入到输出文件指定一个文件名模板和当前的日期和时间.当扩大的文件名更改,关闭当前文件,并打开一个新的. cron ...

  5. Log4j使用笔记:每天生成一个日志文件、按日志大小生成文件

    其中TestLog4j.java如下: package cn.zhoucy.test; import org.apache.log4j.Logger; public class TestLog4j { ...

  6. python 跨模块实现按照文件大小,日期实现日志分割,反转

    笔者的一个自动化测试平台项目,采用了python作为后端服务器语言.项目基于快速成型目的,写了一个极其简陋的日志记录功能,支持日志记录到文件和支持根据日志级别在终端打印不同颜色的log.但随着测试平台 ...

  7. 【docker】docker限制日志文件大小的方法+查看日志文件的方法

    一.docker日志文件的方法 除了 docker logs -f 容器ID/容器名 这个方法以外. 在linux上,一般docker的日志文件存储在/var/lib/docker/container ...

  8. log4net按时间日期,文件大小和个数生成日志文件

    从启动模板生成的基于ABP的应用默认使用的log4net日志框架,当然你也可以使用其他的日志框架. ABP默认的log4net.config配置文件配置的很简单,将所有的日志都写到了一个txt文件中, ...

  9. nginx按日期分割日志

    #!/bin/bash # Program:chenglee # Auto cut nginx log script. LOGS_PATH="/usr/local/nginx1.13/log ...

随机推荐

  1. nginx转发上传图片接口图片的时候,报错413

    我这边有一个接口是上传图片,使用nginx进行代理,上传大一点的图片,直接调用我的接口不会报错,但是调用nginx上传图片就会报错"413 Request Entity Too Large& ...

  2. linux tar 压缩和解压缩

    tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个. 下面 ...

  3. js实现元素范围内拖动

    元素拖拽,网上一堆的实现,其中很多是原生js写的,都不够简洁,甚至运行后看不到效果. 于是乎,安静地想了下,拖动元素貌似就是一个滑动事件的监听处理,具体操作如下: 1.一个外层DIV,或者直接用根节点 ...

  4. mac下git连接远程仓库gitee

    一.注册账号 https://gitee.com/ 二.创建仓库 三.创建后显示如下 四.根据页面上展示命令敲一遍就可以了. 备注:注意!!

  5. typora软件使用指南

    Markdown学习 标题: 三级标题 四级标题 字体 hello,world! hello,world! hello,world! hello,world! 引用 选择狂神说java,走向人生巅峰 ...

  6. 从面试角度分析LinkedList源码

    注:本系列文章中用到的jdk版本均为java8 LinkedList类图如下: LinkedList底层是由双向链表实现的.链表好比火车,每节车厢包含了车厢和连接下一节车厢的连接点.而双向链表的每个节 ...

  7. js上 十三、函数初步-2

    13-1.函数的参数 函数的本质: ü 函数的作用,代码重用,编写一个函数,就是为了解决一类问题. ü 函数每次调用,都有一个结果,那么结果和什么相关呢?y = x , y = x2,y = sin( ...

  8. Linux 修改权限,查看进程,结束进程 命令

    在linux终端先输入ll,可以看到bai如:-rwx-r--r-- (一共10个参数) 表示文件所属组和du用户的对应权限.zhi第一个跟dao参数属于管理员,跟chmod无关,先不管.2-4参数: ...

  9. MacOS下解决宿主机和docker容器之间网络互通

    docker在Mac下使用非常方便,官网提供了desktop版本的可视化软件,甚至还十分贴心地集成好了k8s套件.然而如果想同时部署和使用多个容器,每个容器不使用127.0.0.1地址,而是各自有ip ...

  10. 5.innodb B+tree索引

    索引基础 索引是数据结构 1.图例 2.B+tree 特征 1.非叶子节点不保存数据,只用来索引,数据都保存在叶子节点 2.查询任何一条数据,查询的索引深度都是一样的 3. B+ 树中各个页之间是通过 ...