log4j和util的log有什么区别
答案:1 悬赏:30 手机版
解决时间 2021-01-18 19:41
- 提问者网友:趣果有间
- 2021-01-17 20:21
log4j和util的log有什么区别
最佳答案
- 五星知识达人网友:平生事
- 2021-01-17 20:27
功能不同点
虽然Log4j和JUL几乎有同样的概念,他们在功能上不同。他们的可以归纳为,“无论JUL能不能做成什么,Log4j都能做 - 并且做得更多。”他们主要在几个领域不同,appender/handler的实现,有用的格式化器/布局实现器,和配置灵活性上。
JUL包含4种具体的handler的实现,而Log4j则包括超过12个的appender实现。JUL的handler足够用来进行基本的
日志记录 -
他们允许你写入到一个buffer,一个console,一个socket,和一个file中。Log4j的appenders,另一方面,大概覆盖了所
有logging输出目的地你可以想到的。他们可以写到NT日志或者Unix
syslog中,或者甚至发送Email。图片2提供了JUL的handler和Log4j的appenders的汇总。
JUL包含了两个格式化类:XMLFormatter和SimpleFormatter。Log4j包含了对应的布局器:XMLLayout和
SimpleLayout.Log4j还提供了TTCCLayout,它格式化LoggingEvents到富内容字符串,和HTMLLayout,它可
格式化LoggingEvent到HMTL表格中。
TTCCLayout和HTMLLayout都很有用,Log4j的确领先于JUL,在formatter/handler方面,由于
PatternLayout。PatternLayout实例能够采用一个通过字符转换式模式而带来具有大量有弹性的被配置,类似于在C中的printf
函数的表达式类型。在PatternLayout转换式模式中,特定转化字符被用来指定在布局格式化输出的信息。例如,"%t"被用来指定开始记录信息的
线程;"%C"被用于开始记录信息的对象的类的名称;并且"%m"指定了信息。"%t: %m"将导致输出类似于这样"main thread:This
is my message." "%C - %t:%m"会导致输出类似于"org.nrdc.My-Class - main
thread:This is my message."
Pattern-Layout非常有用,然而JUL的两个formatter类没有任何地方来匹配这样的多功能性。对于JUL使用者,自行定制
formatter类是很少见,反之大多数Log4j用户通常需要学会如何使用PatternLayout转换式模式。
Log4j和JUL同时都能够使用配置文件进行配置,Log4j允许更广范围内的配置的可能性相对于JUL使用的配置文件。JUL能够使
用.properties文件配置,但是到了J2SE5.0之前,handlers的配置只能是对于每一个类的而不是对于每一个实例。这就意味着如果你将
使用Tiger版本的SDK,你将遗漏有用的配置选择,例如可以设置不同的FileHandler实例发送他们的输出到不同的文件中。
非常重要的,注意Tiger版的JUL能够很容易的被配置为写到多个文件,通过编写代码,而不是通过默认的配置机制。Log4j能够通
过.properties文件或者XML文件配置,并且appenders能够以每一个实例为基础进行配置。同时,Log4j允许开发者关联布局实例和
appender实例,并以每一个实例为基础进行配置布局。这包括PatternLayout实例 -
你能够设置转换式每一个模式的使用,在配置文件中。在开发过程中,通过重新编译来调整日志配置不是问题,开发结束后,然而,你或许不想通过重新编译来改变
或者完全重新配置应用中的日志。这时,Log4j提供了更多的弹性,尤其使用Tiger。
虽然Log4j和JUL几乎有同样的概念,他们在功能上不同。他们的可以归纳为,“无论JUL能不能做成什么,Log4j都能做 - 并且做得更多。”他们主要在几个领域不同,appender/handler的实现,有用的格式化器/布局实现器,和配置灵活性上。
JUL包含4种具体的handler的实现,而Log4j则包括超过12个的appender实现。JUL的handler足够用来进行基本的
日志记录 -
他们允许你写入到一个buffer,一个console,一个socket,和一个file中。Log4j的appenders,另一方面,大概覆盖了所
有logging输出目的地你可以想到的。他们可以写到NT日志或者Unix
syslog中,或者甚至发送Email。图片2提供了JUL的handler和Log4j的appenders的汇总。
JUL包含了两个格式化类:XMLFormatter和SimpleFormatter。Log4j包含了对应的布局器:XMLLayout和
SimpleLayout.Log4j还提供了TTCCLayout,它格式化LoggingEvents到富内容字符串,和HTMLLayout,它可
格式化LoggingEvent到HMTL表格中。
TTCCLayout和HTMLLayout都很有用,Log4j的确领先于JUL,在formatter/handler方面,由于
PatternLayout。PatternLayout实例能够采用一个通过字符转换式模式而带来具有大量有弹性的被配置,类似于在C中的printf
函数的表达式类型。在PatternLayout转换式模式中,特定转化字符被用来指定在布局格式化输出的信息。例如,"%t"被用来指定开始记录信息的
线程;"%C"被用于开始记录信息的对象的类的名称;并且"%m"指定了信息。"%t: %m"将导致输出类似于这样"main thread:This
is my message." "%C - %t:%m"会导致输出类似于"org.nrdc.My-Class - main
thread:This is my message."
Pattern-Layout非常有用,然而JUL的两个formatter类没有任何地方来匹配这样的多功能性。对于JUL使用者,自行定制
formatter类是很少见,反之大多数Log4j用户通常需要学会如何使用PatternLayout转换式模式。
Log4j和JUL同时都能够使用配置文件进行配置,Log4j允许更广范围内的配置的可能性相对于JUL使用的配置文件。JUL能够使
用.properties文件配置,但是到了J2SE5.0之前,handlers的配置只能是对于每一个类的而不是对于每一个实例。这就意味着如果你将
使用Tiger版本的SDK,你将遗漏有用的配置选择,例如可以设置不同的FileHandler实例发送他们的输出到不同的文件中。
非常重要的,注意Tiger版的JUL能够很容易的被配置为写到多个文件,通过编写代码,而不是通过默认的配置机制。Log4j能够通
过.properties文件或者XML文件配置,并且appenders能够以每一个实例为基础进行配置。同时,Log4j允许开发者关联布局实例和
appender实例,并以每一个实例为基础进行配置布局。这包括PatternLayout实例 -
你能够设置转换式每一个模式的使用,在配置文件中。在开发过程中,通过重新编译来调整日志配置不是问题,开发结束后,然而,你或许不想通过重新编译来改变
或者完全重新配置应用中的日志。这时,Log4j提供了更多的弹性,尤其使用Tiger。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯