我查看了关于记录器类的api(这里),我正在查看该Logger.info方法.当我看到它的边界显示为与字符串public void info(String msg)相同的消息时,我感到很困惑System.out.println().我想知道这两者之间有什么不同,为什么我们使用Logger而不是System.out.println打印出同样的东西.
在记录器中.
Logger.info("Hello")
输出:
[INFO ] 2015-08-07 11:18:46.140 [main] ClassName Hello
Run Code Online (Sandbox Code Playgroud)
在 System.out.println
`的System.out.println( "你好")
输出:你好
Ell*_*sch 16
通常,因为a Logger可以配置为写入文件(和控制台).它也可以在更高(或更低)的粒度上配置消息传递.例如,您可以配置(在运行时)警告级别.在这种情况下,该looger不会显示调试或信息消息.它可以包括诸如正在写的类,行号以及(消息的)日期和时间之类的信息.
Nat*_*hes 11
使用记录器可以抽象出很多细节,并且比写入stdout要多得多.
您可以指定要写入的不同目标.不同的appender写入文件,在给定的时间段内滚动文件,写入队列或数据库等.
您可以为日志消息指定一致的格式,而不必将其添加到您写入stdout的每一行.
您可以选择一个缓冲输出的appender,以便多个线程可以记录而不会让线程争用控制台对象上的锁.
您可以通过类别(通常是包和类名)和日志级别(跟踪,调试,信息,错误,致命)进行过滤,以便轻松配置要查看的日志消息以及要忽略的日志消息.通过日志记录,您可以更改记录器属性中的配置,或在应用程序中包含一个页面,以更改即时过滤的内容.
您可以混合和匹配这些内容,例如,设置特定的smtp appender以通过电子邮件发送日志消息以记录错误级别或更高级别,此外还可以将消息写入滚动文件或其他任何内容.
Logger和System.out.println之间的主要区别是:Logger:在文件(文本文件)中System.out.println:打印文本
。在进行任何LIVE项目时,在控制台中记录Logger 的输出非常有用。
因为如果开发和部署了任何项目,那么您将无法检查控制台。那时,记录器将对跟踪项目的流程很有用,如果您在catch {...}块中添加了记录器,则可以找到错误或异常。
还请通过此Logger与System.out.println进行比较
| 归档时间: |
|
| 查看次数: |
21543 次 |
| 最近记录: |