【JAVA基础】0009--------JAVA中log日志的打印
2013-04-06 17:08
267 查看
使用方法:
一:配置文件log4j.properties
配置如下:
二:用到的JAR包:log4j-1.2.15.jar
三:具体的使用方法。
四:一些简单的解释,不明白的,请百度!
一、配置步骤
1、 在应用程序中使用log4j
2、 把log4j-*.*jar放入CLASSPATH变量中
3、 新建一个配置文件log4j.properties,放于bin文件下
二、配置log4j.properties
新建一个配置文件log4j.properties:
log4j.rootLogger=WARN, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# Print the date in ISO 8601 format
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN
编译并运行TestLog4j会在目录下生成一个example.log的文件,屏幕也会输出信息,这证明已经你已经成功了第一步。
下面解释下这些配置文件
log4j.rootLogger = [ level ], appendName1, appendName2, …appendNameN。同一个记录器可有多个输出端。
PS:level的级别(此级别可以自定义,系统默认提供了以下级别)
debug//调试信息
info//一般信息
warn//警告信息
error//错误信息
fatal//致命错误信息
上面列出的就是所谓log4j的输出级别,log4j建议只使用4个级别,它们从上到下分别为ERROR、WARN、INFO、DEBUG,假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息就不显示了。
log4j.appender.appenderName = fully.qualified.name.of.appender.class。log4j提供了以下几种常用的输出目的地:
org.apache.log4j.ConsoleAppender,将日志信息输出到控制台
org.apache.log4j.FileAppender,将日志信息输出到一个文件
org.apache.log4j.DailyRollingFileAppender,将日志信息输出到一个,并且每天输出到一个新的日志文件
org.apache.log4j.RollingFileAppender,将日志信息输出到一个文件,通过指定文件的的尺寸,当文件大小到达指定尺寸的时候会自动把文件改名,如名为example.log的文件会改名为 example.log.1,同时产生一个新的example.log文件。如果新的文件再次达到指定尺寸,又会自动把文件改名为 example.log.2,同时产生一个example.log文件。依此类推,直到example.log. MaxBackupIndex, MaxBackupIndex的值可在配置文件中定义。
org.apache.log4j.WriterAppender,将日志信息以流格式发送到任意指定的地方。
org.apache.log4j.jdbc.JDBCAppender,通过JDBC把日志信息输出到数据库中。
Log4j提供了一下几种布局:
org.apache.log4j.HTMLLayout,以HTML表格形式布局
org.apache.log4j.PatternLayout,可以灵活地指定布局模式
org.apache.log4j.SimpleLayout,包含日志信息的级别和信息字符串
定义一个PatternLayout布局的语句为:
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1} - %m%n
PS:ConversionPattern参数的格式含义
格式名 含义
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
三、在代码中使用Log4j
我们在需要输出日志信息的类中做如下的三个工作:
1、导入所有需的log4j类:
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
2、在自己的类中定义一个私有静态类成员:
static Logger logger = Logger.getLogger(TestLog4j.class)
3、使用类的成员方法输出日志信息
一:配置文件log4j.properties
配置如下:
<?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="%-5p %d{yyyy-MM-dd HH:mm:ss} %c %L - %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="INFO" /> <param name="levelMax" value="ERROR" /> <param name="AcceptOnMatch" value="true" /> </filter> </appender> <appender name="FILE_DEBUG" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:/log/SunTRM/log_debug.log" /> <param name="MaxFileSize" value="2MB" /> <param name="encoding" value="UTF-8" /> <param name="MaxBackupIndex" value="5" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss} %c %L - %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="DEBUG" /> <param name="levelMax" value="DEBUG" /> <param name="AcceptOnMatch" value="true" /> </filter> </appender> <appender name="FILE_ERROR" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:/log/SunTRM/log_error.log" /> <param name="MaxFileSize" value="2MB" /> <param name="encoding" value="UTF-8" /> <param name="MaxBackupIndex" value="5" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss} %c %L - %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="ERROR" /> <param name="levelMax" value="ERROR" /> <param name="AcceptOnMatch" value="true" /> </filter> </appender> <appender name="FILE_WARN" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:/log/SunTRM/log_warn.log" /> <param name="MaxFileSize" value="2MB" /> <param name="encoding" value="UTF-8" /> <param name="MaxBackupIndex" value="5" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss} %c %L - %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="WARN" /> <param name="levelMax" value="WARN" /> <param name="AcceptOnMatch" value="true" /> </filter> </appender> <appender name="FILE_INFO" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="C:/log/SunTRM/log_info.log" /> <param name="MaxFileSize" value="2MB" /> <param name="encoding" value="UTF-8" /> <param name="MaxBackupIndex" value="5" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd HH:mm:ss} %c %L - %m%n" /> </layout> <filter class="org.apache.log4j.varia.LevelRangeFilter"> <param name="levelMin" value="INFO" /> <param name="levelMax" value="INFO" /> <param name="AcceptOnMatch" value="true" /> </filter> </appender> <!-- 调整使用那些append <appender-ref ref="FILE_INFO"/> --> <root> <level value="ALL" /> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE_ERROR" /> <appender-ref ref="FILE_DEBUG" /> <appender-ref ref="FILE_INFO" /> <appender-ref ref="FILE_WARN" /> </root> </log4j:configuration>
二:用到的JAR包:log4j-1.2.15.jar
三:具体的使用方法。
public class CreateXml { private static final Logger loger = Logger.getLogger(CreateXml.class); public static void main(String[] args) throws IOException { //日志打印 loger.info("打印的信息是info信息"); loger.error("打印的信息是error信息"); loger.debug("打印的信息是debug信息"); loger.warn("打印的信息是warn信息"); } }
四:一些简单的解释,不明白的,请百度!
一、配置步骤
1、 在应用程序中使用log4j
2、 把log4j-*.*jar放入CLASSPATH变量中
3、 新建一个配置文件log4j.properties,放于bin文件下
二、配置log4j.properties
新建一个配置文件log4j.properties:
log4j.rootLogger=WARN, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# Print the date in ISO 8601 format
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN
编译并运行TestLog4j会在目录下生成一个example.log的文件,屏幕也会输出信息,这证明已经你已经成功了第一步。
下面解释下这些配置文件
log4j.rootLogger = [ level ], appendName1, appendName2, …appendNameN。同一个记录器可有多个输出端。
PS:level的级别(此级别可以自定义,系统默认提供了以下级别)
debug//调试信息
info//一般信息
warn//警告信息
error//错误信息
fatal//致命错误信息
上面列出的就是所谓log4j的输出级别,log4j建议只使用4个级别,它们从上到下分别为ERROR、WARN、INFO、DEBUG,假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息就不显示了。
log4j.appender.appenderName = fully.qualified.name.of.appender.class。log4j提供了以下几种常用的输出目的地:
org.apache.log4j.ConsoleAppender,将日志信息输出到控制台
org.apache.log4j.FileAppender,将日志信息输出到一个文件
org.apache.log4j.DailyRollingFileAppender,将日志信息输出到一个,并且每天输出到一个新的日志文件
org.apache.log4j.RollingFileAppender,将日志信息输出到一个文件,通过指定文件的的尺寸,当文件大小到达指定尺寸的时候会自动把文件改名,如名为example.log的文件会改名为 example.log.1,同时产生一个新的example.log文件。如果新的文件再次达到指定尺寸,又会自动把文件改名为 example.log.2,同时产生一个example.log文件。依此类推,直到example.log. MaxBackupIndex, MaxBackupIndex的值可在配置文件中定义。
org.apache.log4j.WriterAppender,将日志信息以流格式发送到任意指定的地方。
org.apache.log4j.jdbc.JDBCAppender,通过JDBC把日志信息输出到数据库中。
Log4j提供了一下几种布局:
org.apache.log4j.HTMLLayout,以HTML表格形式布局
org.apache.log4j.PatternLayout,可以灵活地指定布局模式
org.apache.log4j.SimpleLayout,包含日志信息的级别和信息字符串
定义一个PatternLayout布局的语句为:
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1} - %m%n
PS:ConversionPattern参数的格式含义
格式名 含义
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
三、在代码中使用Log4j
我们在需要输出日志信息的类中做如下的三个工作:
1、导入所有需的log4j类:
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
2、在自己的类中定义一个私有静态类成员:
static Logger logger = Logger.getLogger(TestLog4j.class)
3、使用类的成员方法输出日志信息
相关文章推荐
- JNI开发第二篇通过反射实现C中调用java代码,并实现Log打印日志
- 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
- java如何LOG打印出日志信息
- 02_JNI中Java代码调用C代码,Android中使用log库打印日志,javah命令的使用,Android.mk文件的编写,交叉编译
- Java编码常见的Log日志打印问题
- 【Android Studio】日志打印 Log的使用
- Android log 日志打印简单封装
- 黑马程序员——黑马学习日志之一 Java基础01
- Android Log输出 log开关 日志打印器 LogUtil
- JAVA基础【7.2】《Java核心技术1》异常、断言、日志和调试-断言
- java基础学习日志06
- Java 日志打印不出
- Android中吐司Toast、打印日志Log的使用
- 05java基础之日志
- 简易Java日志(Log)输出工具的封装
- Java使用Log日志系统(common-logging和log4j)
- 毕老师JAVA基础视频 学习日志——Java开发前奏
- 将Java异常的完整堆栈内容打印到log4j日志
- java基础学习日志--String、StringBuffer方法案例
- Android_Log_3_Java基础API