美文网首页IT修真院_JAVA
Log4j的好处——同SystemOutPrintIn的比较

Log4j的好处——同SystemOutPrintIn的比较

作者: DREAMER_e6de | 来源:发表于2017-05-18 18:23 被阅读0次

    Log4j的定义

    Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码

    System.Out.PrintIn的定义

    输出字符串。System是java.lang里面的一个类
    ,而out就是System里面的一个数据成员(也称为字段),但这个成员不是基本类,而是java.io.PrintStream类的对象,我们先看看下面的截图,被关键字static修饰的数据成员或方法可以直接通过“类名.数据成员”或“类名.方法”来引用,而无须先建立对象。所以System.out是应用了out这个静态数据成员。而out又是一个java.io.PrintStream类的对象,所以out必然可以调用java.io.PrintStream类里面的方法,println()就是java.io.PrintStream类里的一个方法,它的作用就是用来想控制台输出信息的。

    代码实例比较

    System.Out.PrintIn

    不知道这句话是在哪个类,哪个线程里出来的

    不知道什么时候前后两句输出间隔了多少时间

    无法关闭调试信息,一旦System.out.println多了之后,到处都是输出,增加定位自己需要信息的难度�等等

    1

    光秃秃的输出信息

    Log4j

    知道是哪个类的日志

    知道是哪个线程的日志

    日志级别可以观察TRACE DEBUG INFO WARN ERROR FATAL

    知道时间间隔

    2

    Log4j配置

    log4j.properties

    设置输出格式

    设置输出文件

    log4j.rootLogger=DEBUG,Console,Stdout//输出地方,控制台,输出信息登记DEBUG

    #Console

    log4j.appender.Console=org.apache.log4j.ConsoleAppender

    log4j.appender.Console.layout=org.apache.log4j.PatternLayout

    log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n//输出格式

    log4j.logger.java.sql.ResultSet=INFO

    log4j.logger.org.apache=INFO

    log4j.logger.java.sql.Connection=DEBUG

    log4j.logger.java.sql.Statement=DEBUG

    log4j.logger.java.sql.PreparedStatement=DEBUG

    log4j.appender.Stdout = org.apache.log4j.DailyRollingFileAppender

    log4j.appender.Stdout.File = C://logs/log.log //输出文件存储路径

    log4j.appender.Stdout.Append = true

    log4j.appender.Stdout.Threshold = DEBUG

    log4j.appender.Stdout.layout = org.apache.log4j.PatternLayout

    log4j.appender.Stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

    格式解释

    log4j日志输出格式一览:

    %c 输出日志信息所属的类的全名

    %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28

    %f 输出日志信息所属的类的类名

    %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行

    %m 输出代码中指定的信息,如log(message)中的message

    %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”

    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推

    %r 输出自应用启动到输出该日志信息所耗费的毫秒数

    %t 输出产生该日志事件的线程名

    所以:

    %5p [%t] (%F:%L) - %m%n 就表示

    宽度是5的优先等级 线程名称 (文件名:行号) - 信息 回车换行

    PPT:PPT

    ------------------------------------------------------------------------------------------------------------------------

    IT修真院

    “我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

    这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧 !http://www.jnshu.com/login/1/11605661

    相关文章

      网友评论

        本文标题:Log4j的好处——同SystemOutPrintIn的比较

        本文链接:https://www.haomeiwen.com/subject/brosxxtx.html