Log4j分级别存储日志到数据库
首先先创建三张表,按照自己的需求创建
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] %X{ip} %t %p %c————%X{name} %m%n" />
</layout>
</appender> <appender name="INFO" class="org.apache.log4j.jdbc.JDBCAppender">
<param name="URL" value="jdbc:mysql://IP:3306/log_repository?useUnicode=true&characterEncoding=UTF-8"/>
<param name="user" value="****"/>
<param name="password" value="****"/>
<param name="driver" value="com.mysql.jdbc.Driver"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="INSERT INTO sys_log_info(userId,name,log_time,log_level,location,message)VALUES('%X{userId}','%X{name}','%d{yyyy-MM-dd HH:mm:ss}','%p','%l','%m')"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<!-- 设置日志输出的最小级别 -->
<param name="LevelMin" value="INFO" />
<!-- 设置日志输出的最大级别 -->
<param name="LevelMax" value="INFO" />
</filter>
</appender> <appender name="WARN" class="org.apache.log4j.jdbc.JDBCAppender">
<param name="URL" value="jdbc:mysql://IP:3306/log_repository?useUnicode=true&characterEncoding=UTF-8"/>
<param name="user" value="****"/>
<param name="password" value="****"/>
<param name="driver" value="com.mysql.jdbc.Driver"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="INSERT INTO sys_log_warn(userId,name,log_time,log_level,location,message)VALUES('%X{userId}','%X{name}','%d{yyyy-MM-dd HH:mm:ss}','%p','%l','%m')"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<!-- 设置日志输出的最小级别 -->
<param name="LevelMin" value="WARN" />
<!-- 设置日志输出的最大级别 -->
<param name="LevelMax" value="WARN" />
</filter>
</appender> <appender name="ERROR" class="org.apache.log4j.jdbc.JDBCAppender">
<param name="URL" value="jdbc:mysql://IP:3306/log_repository?useUnicode=true&characterEncoding=UTF-8"/>
<param name="user" value="****"/>
<param name="password" value="****"/>
<param name="driver" value="com.mysql.jdbc.Driver"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="INSERT INTO sys_log_error(userId,name,log_time,log_level,location,message)VALUES('%X{userId}','%X{name}','%d{yyyy-MM-dd HH:mm:ss}','%p','%l','%m')"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<!-- 设置日志输出的最小级别 -->
<param name="LevelMin" value="ERROR" />
<!-- 设置日志输出的最大级别 -->
<param name="LevelMax" value="ERROR" />
</filter>
</appender> <root>
<priority value="debug" />
<appender-ref ref="STDOUT" />
<appender-ref ref="INFO" />
<appender-ref ref="WARN" />
<appender-ref ref="ERROR" />
</root>
</log4j:configuration>
Log4j分级别存储日志到数据库的更多相关文章
- Log4j分级别保存日志到单个文件中,并记录IP和用户信息
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration S ...
- Log4j按级别输出日志到不同文件配置分析 (转:projava)
关于LOG4J 按照级别输出日志,并按照级别输出到不同文件中的说法有很多, 网上贴的最多的log4j.properties的设置是这样的 log4j.rootLogger=info,stdout,in ...
- Log4j按级别输出日志到不同文件配置
1.自定义LogFileAppender类,继承DailyRollingFileAppender,实现Log4j按级别输出日志到不同文件. package com.liying.mango.commo ...
- Log4j按级别输出日志到不同文件配置分析
关于LOG4J 按照级别输出日志,并按照级别输出到不同文件中的说法有很多, 网上贴的最多的log4j.properties的设置是这样的 log4j.rootLogger=info,stdout,in ...
- log4j分级别打印和如何配置多个Logger
log4j.rootLogger=dubug,info,warn,error 最关键的是log4j.appender.[level].threshold=[level] 这个是日志分级别打印的最关 ...
- log4j按级别输出日志文件
log4j.properties: BASE_DIR= /home/admin/preprocess-tmc-city/logs log4j.rootLogger=debug,stdout,debug ...
- 涨姿势:Java 分业务、分级别实现自定义日志打印
自定义日志级别 通常的日志框架都有以下几个级别,从低到高TRACE,DEBUG,INFO,WARN,ERROR,FATAL. 默认情况,假如我们定义日志打印级别INFO,它会把大于等于INFO级别的日 ...
- Log4j按级别输出到不同文件
log4j.properties 文件: log4j.logger.net.sf.hibernate.cache=debug log4j.rootLogger = error,portal_log,s ...
- java log4j基本配置及日志级别配置详解
java log4j日志级别配置详解 1.1 前言 说出来真是丢脸,最近被公司派到客户公司面试外包开发岗位,本来准备了什么redis.rabbitMQ.SSM框架的相关面试题以及自己做过的一些项目回顾 ...
随机推荐
- 编译安装mysql5.7.24踩的坑
1.报错如下:CMake Error at cmake/boost.cmake:76 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 - ...
- 个人玩耍VUE..我的点点滴滴,今天很冷,2度!!!
谢谢博客园,可以记录我的点点滴滴.!!这个小案例的效果图 其中,这篇还是上一篇博客的序章,我们直接看下更新的代码. Cart.Vue <template> <div class=&q ...
- Nginx 优化静态文件访问
简介 Web 开发中需要的静态文件有:CSS.JS.字体.图片,可以通过web框架进行访问,但是效率不是最优的. Nginx 对于处理静态文件的效率要远高于 Web 框架,因为可以使用 gzip 压缩 ...
- Chapter 5 Blood Type——22
Suddenly the sidewalk disappeared from beneath me. My eyes flew open in shock. 突然我身下的人行道消失了.我飞快的睁开眼睛 ...
- leetcode — remove-duplicates-from-sorted-list
/** * Source : https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list/ * * * Given a so ...
- JAVA 连等赋值问题
一.描述 关于 Java 连等赋值,例如a=b=c;我们知道它是从右往左依次赋值的,其结果大致可以拆分为b=c;a=b;,但是当栈中没有持有变量的引用时,则会出现问题,例如: public class ...
- 如何定制Linux外围文件系统?
本文由云+社区发表 作者:我是乖宝宝哦 一般来说,我们所说的Linux系统指的是各种基于Linux Kernel和GNU Project的操作系统发行版.为了掌握Linux操作系统的使用,了解 Lin ...
- python-IO编程,文件读写
一.文件读写 1.打开文件 函数:open(name[. mode[. buffering]]) 参数: name:必须:文件的文件名(全路径或执行文件的相对路径.)) mode:可选:对文件的读写模 ...
- C#/VB.NET 给Word文档添加/撤销书签
在现代办公环境中,阅读或者编辑较长篇幅的Word文档时,想要在文档中某一处或者几处留下标记,方便日后查找.修改时,需要在相对应的文档位置插入书签.那对于开发者而言,在C#或者VB.NET语言环境中,如 ...
- JVM难学?那是因为你没认真看完这篇文章
一:虚拟机内存图解 JAVA程序运行与虚拟机之上,运行时需要内存空间.虚拟机执行JAVA程序的过程中会把它管理的内存划分为不同的数据区域方便管理. 虚拟机管理内存数据区域划分如下图: 数据区域分类: ...