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框架的相关面试题以及自己做过的一些项目回顾 ...
随机推荐
- Linux系统打开文件最大数量限制(进程打开的最大文件句柄数设置)
ulimit [-HSTabcdefilmnpqrstuvx [limit]] 利用ulimit命令可以对资源的可用性进行控制. -H选项和-S选项分别表示对给定资源的硬限制(hard limit ...
- 如何实现登录、URL和页面按钮的访问控制?
用户权限管理一般是对用户页面.按钮的访问权限管理.Shiro框架是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理,对于Shiro的介绍这里就不多说.本篇博客主要是了解Shiro的 ...
- Jvm垃圾回收器(基础篇)
一:概述 在这篇文章中<Jvm运行时数据区>介绍了Java内存运行时区域的各个部分,其中程序计数器.虚拟机栈.本地方法栈,3个区域随着线程的生存而生存的.内存分配和回收都是确定的.随着线程 ...
- leetcode — validate-binary-search-tree
import apple.laf.JRSUIUtils; /** * Source : https://oj.leetcode.com/problems/validate-binary-search- ...
- EF Core新增迁移时无法加载程序集“System.ValueTuple”的错误
EF Core使用迁移命令时,如: Add-Migration Init 有时会出现如下错误: System.IO.FileLoadException: Could not load file or ...
- SpringBoot整合系列-PageHelper分页插件
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9971043.html SpringBoot整合MyBatis分页插件PageHelper ...
- 这可能是最low的发布dotnet core站点到centos7教程
前言 不得不说:我在chrome上写了好长一段,贴了23张图,然后一个crash..我想说我电脑上的chrome已经crash太多次了 以后一定要搞离线编辑的. 正文 什么是.net core,bal ...
- 【Parallel】.Net 并行执行程序的使用心得
一.摘要 官方介绍:提供对并行循环和区域的支持. 命名空间:using System.Threading.Tasks 三个静态方法:Parallel.Invoke,Parallel.For,Paral ...
- php 爬虫框架
发现两款不错的爬虫框架,极力推荐下: phpspider 一款优秀的PHP开发蜘蛛爬虫 官方下载地址:https://github.com/owner888/phpspider 官方开发手册:http ...
- TJU ACM-ICPC Online Judge—1191 The Worm Turns
B - The Worm Turns Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%lld & %llu Su ...