繁体   English   中英

如何使用slf4j记录器将日志打印到文件以进行调试和其他级别

[英]How to use slf4j logger to print logs to a file for debug and other levels

我知道这个问题在我阅读之前和提出的其他答复中都曾提出过,我整理了许多信息,但仍未能实现我想要的目标。

我的目标是让我的maven / java项目每天将信息,调试,跟踪等级别的日志打印到一个新文件中。 理想情况下,我想要jan21.info.log,jan22.info.log,jan21.debug.log,jan22.debug.log ....等等,您知道了,但我什至无法将我的程序打印到文件中。 我在下面粘贴了pom.xml,java类和log4j.properties文件。 Slf4j是必不可少的。 如您所知,这是非常基本的操作,但是由于某种原因我无法使它正常工作。 非常感谢您的帮助。 提前致谢。

更新:该程序能够在根文件夹中创建一个文本文件,并将其写入文件。 我还在下面的App.java中添加了编写代码。

的pom.xml

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>my-app</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.5</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <mainClass>com.mycompany.app.App</mainClass> </configuration> </plugin> </plugins> </build> </project> 

src / main / resources >> log4j.properties

# Root logger option 
log4j.rootLogger=DEBUG, file 
# File appender 
log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p - %m%n 
log4j.appender.file.File=/Users/ajanis/DR/GS/tmp/my-app/myoutput.log 
log4j.appender.file.MaxFileSize=100KB 

src / main / java >> App.java

package com.mycompany.app;

import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class App 
{
   private static Logger log = LoggerFactory.getLogger(App.class);

   public static void main (String [] arg) throws FileNotFoundException, UnsupportedEncodingException
   {
      System.out.println("\n\nBegin\n");
      log.info("hello info");
      log.debug("debug");

      PrintWriter writer = new PrintWriter("blah.txt", "UTF-8");
      writer.println("The first line");
      writer.println("The second line");
      writer.close();

      System.out.println("\nEnd");
   }

}

首先-看起来您想使用log4j进行日志记录,但是您没有适当的绑定,slf4j-log4j12-1.7.10.jar 请注意,您需要删除现有的slf4j-simple依赖项!

其次是命名问题:我建议您使用logback作为绑定,因为它在配置上非常灵活。 参见例如。 基于时间的滚动

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM