Log4j的应用实例

建一张表,如下:

create table log4j
None.gif(
None.gif    logId 
int not null auto_increment,--流水号
None.gif
    createDate varchar(45default null,--日志生成时间
None.gif
    thread varchar(45default null,--当前线程
None.gif
    level varchar(45default null,--当前日志的级别
None.gif
    class varchar(45default null,--生成日志的类
None.gif
    message varchar(245default null,--日志具体信息
None.gif
    
None.gif    
primary key(logId)
None.gif)

编写配置文件myLog4j.properties

#定义3个输出端
None.giflog4j.rootCategory=INFO,A1,A2,A3
None.gif
None.gif#定义A1输出到控制器
None.giflog4j.appender.A1=org.apache.log4j.ConsoleAppender
None.gif#定义A1的布局模式为PaternLayout
None.giflog4j.appender.A1.layout=org.apache.log4j.PatternLayout
None.gif# 定义A1的输出格式
None.giflog4j.appender.A1.layout.ConversionPattern=%4p [%t] (%F:%L) - %m%n
None.gif
None.gif#定义A2输出到文件
None.giflog4j.appender.A2=org.apache.log4j.RollingFileAppender
None.gif#定义A2输出到哪个文件
None.giflog4j.appender.A2.File=./Sample.log
None.gif#定义A2输出文件的最大长度
None.giflog4j.appender.A2.MaxFileSize = 1KB
None.gif#定义A2的备份文件数
None.giflog4j.appender.A2.MaxBackupIndex = 3
None.gif#定义A2的布局模式为PatternLayout
None.giflog4j.appender.A2.layout=org.apache.log4j.PatternLayout
None.gif#定义A2的输出模式
None.giflog4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n
None.gif
None.gif#定义A3输出到数据库
None.giflog4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender
None.giflog4j.appender.A3.URL=jdbc:mysql://localhost:3306/study
None.giflog4j.appender.A3.driver=com.mysql.jdbc.Driver
None.giflog4j.appender.A3.user=root
None.giflog4j.appender.A3.password=root
None.gif#定义A3的布局和执行的SQL语句
None.giflog4j.appender.A3.layout=org.apache.log4j.PatternLayout
None.giflog4j.appender.A3.layout.ConversionPattern=INSERT INTO log4j(createDate,thread,level,class,message) values(\'%d\',\'%t\',\'%-5p\',\'%c\',\'%m\')


最后测试程序如下:

public static void sample()
ExpandedBlockStart.gif    
{
InBlock.gif        Logger logger 
= Logger.getLogger(Log4jTest.class);
InBlock.gif        
InBlock.gif        PropertyConfigurator.configure(
"myLog4j.properties");
InBlock.gif        logger.debug(
"Here is DEBUG messgae");
InBlock.gif        logger.info(
"Here is INFO message");
InBlock.gif        logger.warn(
"Here is WARN message");
InBlock.gif        logger.error(
"Here is ERROR message");
InBlock.gif        logger.fatal(
"Here is FATAL message");
ExpandedBlockEnd.gif    }

这样当我们运行该程序的时候会同时将上述日志信息转入到三个地方:
控制台:

数据库:

文件:
 
我们已经看到出现Sample.log文件,该文件我们在配置中指定,当然你也可以修改其它地方,另外Log4j的配置文件也放在项目根目录下。
同时当我们多运行几次该程序时,Sample.log超过1KB时就会将该文件自动改名,同时再将日志记录到新的Sample.log文件中,如下:

转载于:https://www.cnblogs.com/chmod755/p/3382862.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AgileEAS.NET SOA 中间件平台.Net Socket通信框架-完整应用例子-在线聊天室系统-代码解析...

一、AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台.Net Socket通信框架-介绍一文之中我们对AgileEAS.NET SOA中间Socket/Tcp框架进行了总体的介绍,我们知道 AgileEAS.NET SOA中间件Socket/Tcp框架是一套Socket通信的消息中间件&…

小程序如何跳转到各大电商小程序进行CPS赚钱

小程序系统广告门槛高,流量主费用低,个人开发者难以变现。电商CPS也是一种不错的变现方式,在自己的小程序内添加购物优惠导航入口。自己小程序的用户通过导航跳转到电商平台,进行购物,购物完成结算后,作为开…

安装composer以及laravel框架

Linux系统下安装laravel框架 在linux系统下安装laravel: 1.下载到windows系统下,使用FTP(FileZilla是一种快速、可信赖的FTP客户端以及服务器端开放源代码程式,具有多种特色、直接的接口。FileZilla在2002年11月获选为当月最佳推荐专案.)上传…

JVM系列(一)--JVM运行时数据区

随着时间的推移,我觉得有必要将一些之前相对模糊但是对自身技术提高会有帮助的原理、概念、实现进行一下系统的整理,所以就从JVM系列开始吧。本系列主要参考《Java虚拟机规范(第二版)》、周志明先生写的《深入理解Java虚拟机》,具体虚拟机主要…

ceph iscsi安装

ceph iscsi安装 2020-02-24 #安装包 下载包https://github.com/ceph/ceph-iscsi安装ceph-iscsi配置文件安装rbd-target-api所在的ceph-iscsi-cli包 3.1安装依赖python-configshell,网上 3.2安装包里的python-rtslib(先卸载老版本) 3.3安装…

Tensorflow C3D完成视频动作识别

本文是视频动作识别领域经典的C3D网络的简易实现&#xff0c;可以作为动作识别的入门。论文为<Learning Spatiotemporal Features with 3D Convolutional Networks>(ICCV 2015)。 框架&#xff1a;Tensorflow (1.6)python(2.7)slim 数据集&#xff1a;UCF101. Center f…

去除表中重复的数据

2019独角兽企业重金招聘Python工程师标准>>> 表数据如下&#xff1a; 查询表中重复的数据&#xff1a; SELECT * FROM t_class WHERE classname IN (SELECT classname FROM t_class GROUP BY classname HAVING COUNT(classname) > 1) 结果如下&#xff1a; 显示…

基于动态骨骼的动作识别方法ST-GCN

解读&#xff1a;基于动态骨骼的动作识别方法ST-GCN&#xff08;时空图卷积网络模型&#xff09; 2018年04月09日 01:14:14 我是婉君的 阅读数 16076更多 分类专栏&#xff1a; 计算机视觉 论文 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协…

pyTorch实现C3D模型的视频行为识别实践

1、3D卷积t简介 2、C3D模型原理与PyTorch实现 2.1、C3D模型结构 2.2、C3D视频动作识别&#xff08;附PyTorch代码&#xff09; 2.3、测试结果 参考 1、3D卷积的简介 在图像处理领域&#xff0c;被卷积的都是静态图像&#xff0c;所以使用2D卷积网络就足以。而在视频理解领域&…

HyperLPR Python3车牌识别系统的入门使用

概要 HyperLRP是一个开源的、基于深度学习高性能中文车牌识别库&#xff0c;由北京智云视图科技有限公司开发&#xff0c;支持PHP、C/C、Python语言&#xff0c;Windows/Mac/Linux/Android/IOS 平台。 github地址&#xff1a; https://github.com/zeusees/HyperLPR TODO 支…

java简单自定义Annotation

为什么80%的码农都做不了架构师&#xff1f;>>> 原文内容比较多&#xff0c;这里就简单地说一下。java 5以后增加了3个annotation&#xff0c; Override Deprecated SuppressWarnings 以上annotation用途就不说了。java中自定义annotation需要interface关键字和用到…

Tensorflow Object detection API 在 Windows10 配置

Tensorflow Object detection API 在 Windows10 下的配置不如在 Ubuntu 下配置方便&#xff0c;但还是有方法的&#xff0c;介绍一下我的配置流程。官方目标检测的demo中调用了大量的py文件&#xff0c;不利于项目的部署&#xff0c;因此我将其合并为两个文件 ##1.Tensorflow m…

使用jq的toggle函数实现全选功能遇到的问题

2019独角兽企业重金招聘Python工程师标准>>> 今天做网站后台管理的时候&#xff0c;要实现一个单选全选的功能&#xff0c;很简单的功能&#xff0c;不过&#xff0c;遇到了一个很诡异的问题&#xff0c;写出来跟大家分享下。 功能就不赘述了&#xff0c;大家都懂&…

GO国内镜像加速模块下载

众所周知&#xff0c;国内网络访问国外资源经常会出现不稳定的情况。 Go 生态系统中有着许多中国 Gopher 们无法获取的模块&#xff0c;比如最著名的 golang.org/x/...。并且在中国大陆从 GitHub 获取模块的速度也有点慢。 因此设置 CDN 加速代理就很有必要了&#xff0c;以下…

AbstractEndpoint 和 ProtocolHandler

2019独角兽企业重金招聘Python工程师标准>>> AbstractEndpoint 和 ProtocolHandler /** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additiona…

HOG + SVM 实现图片分类(python3)

前言 大家能看到这篇文章&#xff0c;想必对HOG还是有些了解了&#xff0c;那我就不赘述了&#xff0c;其实我自己不太懂&#xff0c;但是还是比刚开始好一些了。下面我的代码是参考这位博主的&#xff1a;点我查看 上面那位博主是用的cifar-10数据集&#xff0c;但是我们的数…

随机过程及其在金融领域中的应用 第三章 习题 及 答案

随机过程及其在金融领域中的应用 第三章 习题 及 答案 本文地址: http://blog.csdn.net/caroline_wendy/article/details/16879515 包含: 1, 2, 5, 15; 第1题: 第2题: 第5题: 第15题: 转载于:https://blog.51cto.com/spikeking/1388002

Fiddler手机抓包(iPhone)

Fiddler不但能截获各种浏览器发出的HTTP/HTTPS请求&#xff0c;也可以截获各种移动设备&#xff08;包括Andriod和IOS&#xff09;发出的HTTP/HTTPS请求。最关键的是&#xff0c;Fiddler还可以断点调试&#xff0c;修改Request和Response&#xff0c;而且即便抓包的是IOS设备&a…

python脚本去除文件名里的空格

原始文件名里很多空格&#xff0c;写了个python脚本去除文件名里的空格 import osfilepath"image" # 文件目录名 zimulus os.listdir(filepath)for musicname in zimulus:#改目录下的文件名oldmusicpath filepath \\ musicnamenewmusicname musicname.replace( …

eclipse打开文件所在目录

设置 添加扩展工具&#xff0c;添加步骤如下&#xff1a; Run-->External Tools-->External Tools Configurations... new 一个 programlocation 里面填 &#xff1a;C:/WINDOWS/explorer.exeArguments 里面填: ${container_loc}设置完成之后&#xff0c;选择文件&#…