循序渐进看Java web日志跟踪(3)-Log4J的使用和配置
#可以设置级别:debug>info>error
#debug:显示debug、info、error
#info:显示info、error
#error:只error
log4j.rootLogger=debug,appender1
#log4j.rootLogger=info,appender1
#log4j.rootLogger=error,appender1
#输出到控制台
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[Bash]:%d %5p (%c:%L) - %m%n
private static Logger logger = Logger.getLogger(Log.class);
public static void main(String[] args) {
// System.out.println("This is println message.");
// 记录debug级别的信息
logger.debug("This is debug message.");
// 记录info级别的信息
logger.info("This is info message.");
// 记录error级别的信息
logger.error("This is error message.");
}
运行后,在控制台上的输出如下:
[Bash]:2016-01-18 23:10:11,089 INFO (com.sean.log.LogTest1:14) - This is info message
[Bash]:2016-01-18 23:10:11,093 ERROR (com.sean.log.LogTest1:15) - This is error message
上面,我们实现了Log4J的控制台输出,这里面,需要用到的代码并不多,相对而言,需要说的是log4J的配置文件。在通用的开发环境中,Log4J的使用,重点就是在于其配置文件的配置中。Log4J的配置文件有两种,一种是采用properties文件,另一种是使用xml文件。常见的,也是使用properties的方式进行配置。
1. DEBUG (the least serious)
# 2. INFO
# 3. WARN
# 4. ERROR
# 5. FATAL (the most serious)
|
log4j.appender.appenderName = class#配置日志输出采用的类
log4j.appender.appenderName.key= value#配置相关日志输出的参数
|
到这里,暂时不再说如何输出,先说下输出什么。在第一个实例中,能够发现,控制台的输出和在配置文件中配置的参数是有关的。
log4j.rootLogger=DEBUG,CONSOLE,A1,im
log4j.addivity.org.apache=true
# 应用于控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=DEBUG #级别
log4j.appender.CONSOLE.Target=System.out #输出
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout #格式化方式
log4j.appender.CONSOLE.layout.ConversionPattern=[bash] %d - %c -%-4r [%t] %-5p %c %x - %m%n #格式化标准
#应用于文件(单个文件)
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE .Threshold=ERROR
log4j.appender.FILE.File=file.log #文件名
log4j.appender.FILE.Append=true #是否累加,是为增量输出,否未覆盖输出
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout #格式化方式
log4j.appender.FILE.layout.ConversionPattern=[bash ] %d - %c -%-4r [%t] %-5p %c %x - %m%n #格式化标准
# Use this layout for LogFactor 5 analysis
# 应用于文件增量添加,按照大小
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender #输出类
log4j.appender.ROLLING_FILE.Threshold=ERROR #输出级别
log4j.appender.ROLLING_FILE.File=rolling.log #文件位置,可以动态配置
log4j.appender.ROLLING_FILE.Append=true #是否累加,是为增量输出,否未覆盖输出
log4j.appender.ROLLING_FILE.MaxFileSize=10KB #文件最大尺寸,
log4j.appender.ROLLING_FILE.MaxBackupIndex=1 #备份数
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout #格式化方式
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n # 应用于文件增量添加,按照日期
log4j.appender.Daily_ROLLING_FILE=org.apache.log4j. DailyRollingFileAppender#输出类
log4j.appender.Daily_ROLLING_FILE .Threshold=ERROR #输出级别
log4j.appender.Daily_ROLLING_FILE .File=rolling.log #文件位置,可以动态配置
log4j.appender.Daily_ROLLING_FILE .Append=true #是否累加,是为增量输出,否未覆盖输出
log4j.appender.info.DatePattern=-yyyy-MM-dd'.log'
log4j.appender.Daily_ROLLING_FILE .layout=org.apache.log4j.PatternLayout #格式化方式
log4j.appender.Daily_ROLLING_FILE .layout.ConversionPattern=[bash ] %d - %c -%-4r [%t] %-5p %c %x - %m%n #应用于socket
log4j.appender.SOCKET=org.apache.log4j.net.SocketAppender
log4j.appender.SOCKET.RemoteHost=localhost
log4j.appender.SOCKET.Port=5001
log4j.appender.SOCKET.LocationInfo=true
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
log4j.appender.SOCKET.layout.ConversionPattern=[bash ] %d - %c -%-4r [%t] %-5p %c %x - %m%n # 发送日志给邮件(这种方式用公用邮箱时常会被拦截)
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=FATAL
log4j.appender.MAIL.BufferSize=10
log4j.appender.MAIL.From= @126.com
log4j.appender.MAIL.SMTPHost=smtp.126.com
log4j.appender.MAIL.SMTPUsername= @126.com
log4j.appender.MAIL.SMTPPassword=
log4j.appender.MAIL.Subject=Log4J Message
log4j.appender.MAIL.To= @qq.com
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=[bash ] %d - %c -%-4r [%t] %-5p %c %x - %m%n # html输出
log4j.appender.HTML=org.apache.log4j.FileAppender
log4j.appender.HTML.File=D://htmlLayout.html
log4j.appender.HTML.layout=org.apache.log4j.HTMLLayout
log4j.appender.HTML.layout.Title=HTML Layout Example
log4j.appender.HTML.layout.LocationInfo=true
log4j.appender.HTML.layout.ConversionPattern=[bash ] %d - %c -%-4r [%t] %-5p %c %x - %m%n # 用于数据库
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
log4j.appender.DATABASE.user=root
log4j.appender.DATABASE.password=
log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=[bash ] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#应用于socket
log4j.appender.SOCKET=org.apache.log4j.net.SocketAppender
log4j.appender.SOCKET.RemoteHost=localhost
log4j.appender.SOCKET.Port=9090
log4j.appender.SOCKET.LocationInfo=true
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
log4j.appender.SOCET.layout.ConversionPattern=[Bash]:%d %5p (%c:%L) - %m%n
默认情况下log4j采用的是tcp协议进行访问,所以,在服务器端需要有个程序,监听9090端口,来实现日志的接收
public static void main(String arg[]) throws IOException {
ServerSocket serverSocket=new ServerSocket(9090);
while (true){
Socket s= serverSocket.accept();
String line;
BufferedReader is=new BufferedReader(new InputStreamReader(s.getInputStream(),"utf-8"));
System.out.println(is.readLine());
}
}
循序渐进看Java web日志跟踪(3)-Log4J的使用和配置的更多相关文章
- 循序渐进看Java web日志跟踪(1)-Tomcat 日志追踪与配置
日志,是软件运行过程中,对各类操作中重要信息的记录. 日志跟踪,不管对于怎么样的项目来说,都是非常重要的一部分,它关系到项目后期的维护和排错,起着举足轻重的作用.项目开发过程中,对日志的记录规则,也将 ...
- 循序渐进看Java web日志跟踪(2)-Java日志API认识
接触过Java的朋友应该都会知道,java的开源框架百花齐放,实现同样的功能,总能找到几个强大的开源框架来进行选择.在日志方面,Java同样不逊色.除了JDK本身自带的简单的日志工具,java还有如l ...
- 阿里云部署Java web项目初体验(转)/linux 上配置jdk和安装tomcat
摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在阿里云上部署Java web项目. 一.准备工作 购买了阿里云的云解析,和云服务器ecs. 2.下载put ...
- Java Web入门学习(二) Eclipse的配置
Java Web学习(二) Eclipse的配置 一.下载Eclipse 1.进入Eclipse官网,进行下载 上图,下载Eclipse IDE for JaveEE Developers 版本,然后 ...
- Java Web开发之路(一)——环境配置
1. 下载JDK(Java Development Kit)工具包.其中包括运行Java程序所必须的JRE环境及开发过程中常用的库文件. (JDK与JRE的关系: JDK是Java的开发环境,在编写J ...
- java Web开发中,Tomcat安装顺序与配置(windows7系统下)
一.要先安装JDK[比如,安装目录:D:/program Files/Java ] 注:1.JDK安装顺序可以参照百度,后期会补上 2.安装是否成功的验证方式:点击“开始”→输入“cmd”→输入“Ja ...
- 【Java】日志知识总结和经常使用组合配置(commons-logging,log4j,slf4j,logback)
Log4j Apache的一个开放源码项目,通过使用Log4j,我们能够控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Syslog守护进程等.用 ...
- java web,从零开始,一步一步配置ssm(Spring+SpringMVC+MyBatis)框架
1.安装JDK: 安装之后要配置环境变量,在系统变量里: 新建变量名JAVA_HOME,变量值C:\Program Files\Java\jdk1.8.0_77: 新建变量名CLASSPATH,变量值 ...
- Mac下Intellij IDea发布Java Web项目详解四 为所有Module配置Tomcat Deployment
准备工作1:新建第一个JavaWeb项目 准备工作2:新建Module step5 为所有项目配置Deployment 5.1 如图 5.2 [+][Artifact] 5.3 将这里列出的所有内容选 ...
随机推荐
- SpringMVC 异常处理
SpringMVC学习系列(10) 之 异常处理 在项目中如何处理出现的异常,在每个可能出现异常的地方都写代码捕捉异常?这显然是不合理的,当项目越来越大是也是不可维护的.那么如何保证我们处理异常的代码 ...
- Jenkins Slave 设置
Jenkins Slave node环境变量设置有很多trap,在最近的工作当中,我把slave部署在red hat linux 上,进行c++项目的编译部署和发布,但是在执行工程的时候,总会报出某些 ...
- Amazon前技术副总裁解剖完美技术面试
Amazon前技术副总裁解剖完美技术面试 投递人 itwriter 发布于 2014-03-03 14:30 评论(0) 有1729人阅读 原文链接 [收藏] « » 英文原文:The Anat ...
- iOS 制作 framework 教程
直接看步骤 废话不多说,哈哈! 1.新建一个静态库工程: 2:取自己喜欢的名字: 3.删除向导所生成工程中的 Target: 3.删除TestFrameWork对应的工程文件夹: 5:删除bulid ...
- IOS UI 第九篇: UITABLEVIEW
学英语.所以用英文来记录笔记. Define the dataSource: @implementation ViewController{ NSMutableArray *dataSo ...
- 浅谈PHP在各系统平台下的换行符
<?php echo 'aaa\n';//用于linux.unix平台C的换行也是如此 echo 'bbb\r';//用于mac平台 echo 'ccc\r\n';//用于windows平台 / ...
- Code First 启用迁移时出错 "No context type was found in the assembly"
问题:Code First 启用迁移时找不到上下文DbContext所在的项目. PM> Enable-Migrations No context type was found in the a ...
- [转]Whirlwind Tour of ARM Assembly
ref:http://www.coranac.com/tonc/text/asm.htm 23.1. Introduction Very broadly speaking, you can divid ...
- [原]逆向iOS SDK -- _UIImageAtPath 的实现(SDK 6.1)
汇编代码: ; 状态:R0 = imageFileName, R1 = mainBundle, R2 = isRetina PUSH {R4-R7,LR} ; R0 = imageFileNam ...
- Django 中的 WSGI
Django 源码小剖: Django 中的 WSGI 2013-09-06 22:31 by 捣乱小子, 334 阅读, 0 评论, 收藏, 编辑 Django 其内部已经自带了一个方便本地测试的小 ...