log4j配置

Log4j的扩展-支持设置最大日志数量的DailyRollingFileAppender

Deadly 提交于 2019-12-02 22:21:02
Log4j现在已经被大家熟知了,所有细节都可以在网上查到,Log4j支持Appender,其中DailyRollingFileAppender是被经常用到的Appender之一。在讨论今天的主题之前,我们先看下另外一个Appender。 最常用的Appender——RollingFileAppender 下面是RollingFileAppender的一个Log4j配置样例(配置1): log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.Threshold=DEBUG log4j.appender.R.File=test.log log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n log4j.appender.R.MaxFileSize=20MB log4j.appender.R.MaxBackupIndex=10 RollingFileAppender使用MaxFileSize设置一个日志文件的最大大小,当产生多个日志时,会在日志名称后面加上".1"、".2

java异常处理

匿名 (未验证) 提交于 2019-12-02 21:53:52
错误处理 Java的异常 异常 Java使用异常Exception来表示错误 Exception是Class,带有类型信息 可以在任何地方抛出 只需要在上层捕获,和方法调用分离 必须捕获的异常称为Checked Exception 不需要捕获的异常包括RuntimeException和Error 捕获异常使用try...catch 不捕获的Checked Exception必须用throws声明 main()是最后捕获异常的机会 捕获异常 捕获异常使用try...catch catch会捕获对应的Exception及其子类 多个catch子句从上到下匹配 顺序非常重要,子类必须在前 finally保证有无错误都会执行 finally可选 使用multi-catch捕获多种类型异常 抛出异常 异常从下往上抛出,直至被捕获 打印方法调用栈:printStackTrace() 用throw语句抛出异常 转换异常时注意保留原始异常信息 抛出异常前会保证执行finally finally如果抛出异常会导致suppressed exception 获取所有异常信息:getSuppressed() 自定义异常 尽量使用JDK已定义异常 自定义异常从RuntimeException派生 先定义BaseException,再派生子类 自定义异常应该提供多个构造方法

日志组件slf4j介绍及配置详解

若如初见. 提交于 2019-12-02 21:38:31
1 基本介绍 每一个Java程序员都知道日志对于任何一个Java应用程序尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库,如java.util.logging、Apache log4j、logback。但如果你还不知道SLF4J(Simple logging facade for Java)的话,那么是时候在你的项目中学习使用SLF4J了。 SLF4J不同于其他日志类库,与其它日志类库有很大的不同。SLF4J(Simple logging Facade for Java)不是一个真正的日志实现,而是一个抽象层( abstraction layer),它允许你在后台使用任意一个日志类库。如果是在编写供内外部都可以使用的API或者通用类库,那么你真不会希望使用你类库的客户端必须使用你选择的日志类库。 如果一个项目已经使用了log4j,而你加载了一个类库,比方说 Apache Active MQ——它依赖于于另外一个日志类库logback,那么你就需要把它也加载进去。但如果Apache Active MQ使用了SLF4J,你可以继续使用你的日志类库而无需忍受加载和维护一个新的日志框架的痛苦。 总的来说,SLF4J使你的代码独立于任意一个特定的日志API,这是对于API开发者的很好的思想。虽然抽象日志类库的思想已经不是新鲜的事物,而且Apache commons

JAVA日志的前世今生

匿名 (未验证) 提交于 2019-12-02 20:37:20
这世界上很多事情,看起来就像彩虹一样炫目而神奇,实际上背后蕴含着随处可见的原理。就好像静儿几年前买过一件超贵的防辐射服,当时销售人员把手机严严实实的包在防辐射服里,然后让我打电话测试,果然没有信号。 直到今天,静儿为了写文章,把自己蒙在空调被里,额,竟然连不上网。于是掀起一个被角,“大象”的巡检结果哒哒哒的弹出来了。然后我感慨:自己当年何苦买那么贵一个“围裙”。 日志作为逻辑跟踪、线上问题排查、监控报警的有效基础利器被开发人员所熟知。问题发现、定位到解决,都离不开它,真是如彩虹般绚烂。而从它的演进过程也能看到现代互联网发展的一个缩影。 一 最原始的日志:print、alert 啥?这也算日志。 是的。记得大概十年前,不管是C/S模式(客户端+服务端模式)还是B/S(浏览器+服务端模式)。因为只有前端和后端交互这一层,整个项目都做在一个工程里,大家验证基本上用的前端就是alert,后台就是System.out.print。需求决定设计。链路短,这个基本就够用。 二 JUL java有自己的日志框架,细心的朋友可能注意到过:java.util.logging。 由于其API并不完善,对开发者不是很友好,对于日志的级别分类也不是很清晰。所以大家用的很少。 三 Log4j 有人注意到JUL的一些缺陷,做出了Log for Java。就是曾静风靡一时的Log4j。

Log4j配置详述

北城余情 提交于 2019-12-02 19:15:11
/** * log4j基础配置步骤阐述: * 1.引入log4j相关的jar包文件。           * 2.创建log4j的配置文件。            * 3.测试配置是否成功。             */ Log4j 根配置语法 下面引入一个案例: #log4j.rootLogger=DEBUG,CONSOLE,A #log4j.addivity.org.apache=false # #log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender #log4j.appender.CONSOLE.Threshold=debug #log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} -%-4r [%t] %-5p %x - %m%n #log4j.appender.CONSOLE.Target=System.out #log4j.appender.CONSOLE.Encoding=gbk #log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout # # #log4j.appender.A=org.apache.log4j

SpringBoot十九:日志管理

こ雲淡風輕ζ 提交于 2019-12-02 15:23:10
sprongboot使用的默认日志框架是Logback。 可以在 application.properties 配置简单日志属性,也可以单独配置 logback.xml 格式,还可以使用 log4j 来管理。 下面分别介绍自带的日志配置以及如何使用log4j来作为日志管理。 自带日志管理配置 修改application . properties #配置日志 logging . level . root=INFO logging . level . org . springframework . web=DEBUG logging . level . org . hibernate=ERROR #logging.path=E:\\log logging . file=E:\\log\\springboot . log 这种简单粗暴方便 使用log4j管理 pom.xml文件引入 过滤掉自带的spring-boot-starter-logging,然后添加spring-boot-starter-log4j依赖包。 <dependency> <groupId>org . springframework . boot< / groupId> <artifactId>spring - boot - starter< / artifactId> <exclusions> <exclusion>

log4j2入门hello world

一笑奈何 提交于 2019-12-01 18:41:35
1.什么是log4j2 (1)log4j log4j是apache的一个开源项目,表示log for java.是一个日志工具,可以将日志信息输出到文件,控制台等其他地方 ,还可以定义日志的输出格式,另外还有日志级别的区分,可通过配置文件去配置输出格式,输出目的地等信息. (2)log4j2 log4j2从名字就知道了,是log4j的升级版本,性能有了很大提升,增加了很多新特性(如自定义级别,lambda表达式)与新的API,直接与tomcat等服务器集成. 3.VScode下使用log4j2(不用Maven) (1)准备jar包 点击这里下载 作者用的是win10,下载zip. (2)准备插件 搜索安装:Eclipse New Java Project (3)创建项目 ctrl+shift+p调出命令面板,输入new java project 项目名 JavaSE版本 创建完毕. (4)设置jar包路径 在项目根路径下新建lib文件夹,把下载的 这两个jar包放进去. 下一步设置.classpath. 添加 <classpathentry kind="lib" path="lib/log4j-api-2.12.1.jar" /> <classpathentry kind="lib" path="lib/log4j-core-2.12.1.jar" /> (5)新建测试文件

程序中什么时候打印什么级别的日志

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-01 16:49:36
日志的打印在软件开发过程中必不可少,一般分为两个大类: 操作日志 系统日志 操作日志,主要针对的是用户,例如在Photoshop软件中会记录自己操作的步骤,便于用户自己查看。 系统日志,主要针对的是软件开发人员(包括测试、维护人员),也就是说这部分的日志用户是看不到的,也就是我们通常所说的debug日志。 在大学中所谓的实践项目或者老师布置的作用中,通常是不会在意日志,除非在作业中有特别的需要,往往在开发过程中直接打印控制台语句来调试程序,这是极为不专业的调试开发过程。所以这也就导致了一个问题,大学毕业和工作时衔接不上最大的问题不在于技术上的难度,而是日志打印的问题。这个看似不起眼的问题对于应届生来说往往是“恶梦”,操作日志相对比较好理解,用户做了什么就记录什么;而打印系统日志则无从下手,往往一般有下面几个方面——3W: Where:不清楚在何处打印日志 Who:不清楚打印什么级别的日志 What:不清楚日志应该包含什么内容 本篇着重讲解系统日志,所以以下“日志”均为“系统日志”的简称。我将针对这几个方面对系统日志的打印做一个简要的总结。另外对Java中常用的日志打印框架(log4j)的几种使用方式做一个示范。 WHERE 1.程序入口   在入口打印日志是因为这个时候传递进来的参数没有经过任何处理,将它打印在日志文件中能一眼就知道程序的原始数据是否符合我们的预期

log4j的配置学习

混江龙づ霸主 提交于 2019-12-01 10:10:50
我的 log4j.properties: # Set root category priority to INFO and its only appender to CONSOLE. #log4j.rootCategory=INFO, CONSOLE debug info warn error fatal #配置根Logger #rootLogger是新的使用名称,对应Logger类 #rootCategory是旧的使用名称,对应原来的Category类 #Logger类是Category类的子类,所以,rootCategory是旧的用法,不推荐使用 log4j.rootCategory=debug, CONSOLE, LOGFILE # Set the enterprise logger category to FATAL and its only appender to CONSOLE. log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE # CONSOLE is set to be a ConsoleAppender using a PatternLayout. #配置日志信息输出目的地Appender #org.apache.log4j.ConsoleAppender(控制台), #org.apache.log4j

java的各种日志框架

ぃ、小莉子 提交于 2019-12-01 09:09:59
本文是作者原创,版权归作者所有.若要转载,请注明出处. 文章中若有错误和疏漏之处,还请各位大佬不吝指出,谢谢大家. java日志框架有很多,这篇文章我们来整理一下各大主流的日志框架, 包括log4j log4j2 logback jul(java.util.logging) jcl(commons-logging) slf4j(simple log facade for java)等常用框架 目前java日志的使用有两种形式:日志接口和日志实现 1.目前日志接口,常用的有两种,jcl(commons logging)和slf4j(simple log facade for java)。 2.日志实现目前有这几类,log4j、jul、logback、log4j2。 我们先从log4j开始 首先,引入maven依赖    <!--log4j--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> 然后是配置log4j.properties文件 ### 设置### log4j.rootLogger = debug,stdout,D,E ### 输出信息到控制抬 ### log4j.appender.stdout = org