Java 在jar文件中配置SLF4J

Java 在jar文件中配置SLF4J,java,slf4j,Java,Slf4j,我有自己的jar文件,用作我的主应用程序的库。我需要将SLF4J设置为我的记录器,并在我的jar中配置它 将日志写入文件 在属性文件中设置其他配置 谷歌搜索时,会有一些web应用程序的示例。任何人都可以让我知道如何实现上述功能或提及任何有用的资源。对于库,您应该只包含slf4j api.jar。这意味着在代码中,您应该只使用SLF4J的API中的类,即LoggerFactory和Logger 您的库不应定义有关日志记录的任何其他内容。使用库定义底层日志实现(logback、log4j、jcl

我有自己的jar文件,用作我的主应用程序的库。我需要将SLF4J设置为我的记录器,并在我的jar中配置它

  • 将日志写入文件
  • 在属性文件中设置其他配置

谷歌搜索时,会有一些web应用程序的示例。任何人都可以让我知道如何实现上述功能或提及任何有用的资源。

对于库,您应该只包含
slf4j api.jar
。这意味着在代码中,您应该只使用SLF4J的API中的类,即
LoggerFactory
Logger

您的库不应定义有关日志记录的任何其他内容。使用库定义底层日志实现(logback、log4j、jcl等)并包括必要的绑定以及底层日志平台的配置(如
logback.xml
文件)的应用程序负责


请参阅以获取进一步参考。

要使用slf4j记录某些内容,必须在应用程序中包含slf4j api jar。这是slf4j测井的最低要求。如果使用maven,它可以包含在pom中,如下所示

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.10</version>
</dependency>

如果要使用不同的框架进行日志记录,请包括适当的jar,并按照其他方式配置底层框架。

SLF4J不是日志记录程序,因此无法配置任何内容。使用Logback。

请告诉我该文件的位置以及如何将该文件绑定到SLF4J工厂?如果我不需要,只需要log4j和纯SLF4J日志记录,如何修改它?@Débora将文件放在
src/main/resources
文件夹中,如果你想将设置硬编码到jar中。或者,将它放在文件系统上的一个文件夹中,并在运行它时将该文件夹包括在jar的类路径中。绑定由slf4j-log4j12依赖性自动处理。唯一的潜在困难是,如果您包含多个将slf4j绑定到不同框架的JAR,那么它将随机选择一个。确保只包含log4j绑定,事情应该自动解决。
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.10</version>
</dependency>
# 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