我有自己的jar文件,用作我的主应用程序的库。我需要将SLF4J设置为我的记录器并在我的jar中配置它。
当用Google搜索时,会有针对网络应用的示例。任何人都让我知道如何做上述功能或提及任何有用的资源。
答案 0 :(得分:2)
对于图书馆,您应该只包含slf4j-api.jar
。这意味着在您的代码中,您应该只使用SLF4J的API中的类,即LoggerFactory
和Logger
。
您的图书馆不应该定义有关记录的任何其他内容。使用您的库定义底层日志记录实现(logback,log4j,jcl等)并包含必要的绑定以及底层日志记录平台&#的应用程序负责# 39;配置,例如logback.xml
文件。
请参阅SLF4J manual以获取进一步的参考。
答案 1 :(得分:0)
要使用slf4j记录内容,必须在应用程序中包含slf4j-api jar。这是slf4j日志记录的最低限度。如果使用maven,它可以包含在pom中,如下所示
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.10</version>
</dependency>
但是,slf4j中的默认日志记录行为非常简单。在几乎所有情况下,您都希望将slf4j日志发送到日志框架,该日志框架可以执行更复杂的日志记录。可以包含几个罐子来实现这一目标。我使用log4j,所以下面的例子是针对该框架的。为了登录log4j,需要slf4j-log4j12 jar。
Pom依赖
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.10</version>
</dependency>
从那里所有slf4j日志都将被重定向到log4j,这将正常工作。通过log4j.properties文件配置它。以下示例log4j.properties将记录控制台和/tmp/logfile.log
文件。删除控制台appender只记录到文件。
# Root logger option
log4j.rootLogger=INFO, stdout, file
# Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
# Redirect log messages to a log file, support file rolling.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/tmp/logfile.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
如果要使用其他框架进行日志记录,请包含相应的jar,并按原样配置基础框架。
答案 2 :(得分:-1)
SLF4J不是记录器,因此您无法配置任何内容。使用Logback。