是否可以将所有类记录到单个文件而不是
final Logger logger = LoggerFactory.getLogger(Wombat.class);
Run Code Online (Sandbox Code Playgroud)
您需要为所有课程记录什么?
Fis*_*ish 10
在Logger你的代码中使用不说,其中的日志信息输出. (决定消息的位置是您使用的绑定和配置.)
请注意,具有相同的消息Logger将被强制转到同一个地方,因为您将无法再分开它们 - 所以您希望每个类都有自己的类,Logger以便您以后有最大的选择.
如果要将所有日志消息输出到单个文件,我建议的选项是使用log4j绑定以及我在下面给出的第二个log4j.properties示例.在大多数情况下,您应该能够复制/粘贴此项以便运行,然后在闲暇时进行配置.
涵盖SLF4J及其部分绑定.
Java或(SLF4J)的简单日志外观用作各种日志框架的简单外观或抽象,例如java.util.logging,log4j和logback,允许最终用户在部署时插入所需的日志框架.
所以这完全归结于你使用的绑定!实际上,我们的想法是,您甚至不必在运行时就解决绑定问题,并且不需要更改任何日志记录代码以便以后改变主意!
我将讨论我熟悉的两个,注意还有其他的,你应该考虑做自己的研究,然后再决定一个特定的实现.
简单绑定(例如,slfj-simple-1.6.4.jar)没有配置.
它只是将INFO及以上的所有消息记录到标准错误输出(System.err).
一般来说,虽然你想使用更复杂的绑定,如log4j(这是我使用的,所以将谈论).它比简单绑定更灵活,但需要你做一些配置.
首先,您需要一个不同的绑定jar(例如,slf4j-log4j12-1.6.4.jar).您还需要相应的log4j jar(例如log4j-1.2.16).最后,您需要配置log4j本身 - 一个log4j.properties文件,位于项目的根目录中.
我将跳转到几个示例log4j.properties文件
第一个将所有内容输出到控制台,并且与简单绑定实现的非常相似,除了您可以配置您登录的级别(TRACE,DEBUG,WARN,INFO,ERROR)和输出模式.
# Root Logger : TRACE & above to console appender
log4j.rootLogger=TRACE, console
# Appender : Console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-8r %-5p %c [%t] %m%n
Run Code Online (Sandbox Code Playgroud)
要输出到单个文件,您需要一个不同的appender,例如:
# Root Logger : WARN & above to mainFile appender
log4j.rootLogger=WARN,mainFile
# Appender : mainFile
log4j.appender.mainFile=org.apache.log4j.FileAppender
log4j.appender.mainFile.File=main.log
log4j.appender.mainFile.layout=org.apache.log4j.PatternLayout
log4j.appender.mainFile.layout.ConversionPattern=%-8r %-5p %c [%t] %m%n
Run Code Online (Sandbox Code Playgroud)
Log4j围绕记录器和追加器的概念设置.
记录器(与您将与SLF4J一起使用的记录器类不同)根据某种模式(例如特定包中的消息)捕获消息,并将它们传递给追加器.
Appenders定义消息的输出方式(例如文件,网络,控制台,数据库)及其格式.
| 归档时间: |
|
| 查看次数: |
3780 次 |
| 最近记录: |