2015-01-23 3 views
1

Я знаю, что этот вопрос задан до и из других ответов, которые я читаю. Я собрал кучу информации, но я все еще не могу добиться того, что Я хотел.Как использовать slf4j logger для печати журналов в файл для отладки и других уровней

Моя цель состоит в том, чтобы мой проект maven/java каждый день печатал журналы на уровне информации, отладки, трассировки и т. Д. В идеале я хотел бы jan21.info.log, jan22.info.log, jan21.debug.log, jan22.debug.log .... и т. Д. Вы получили идею, но я даже не могу заставить мою программу печатать в файл , Я вставил свой файл pom.xml, java и файл log4j.properties ниже. Slf4j - это требование кстати. Как вы можете сказать, это очень просто, но я не могу заставить это работать по какой-то причине. Высоко цените любую помощь здесь. Заранее спасибо.

UPDATE: Программа способна создать текстовый файл в корневой папке и написать ему в порядке. Я добавил код записи также в 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> 
 
\t <dependency> 
 
\t \t <groupId>org.slf4j</groupId> 
 
\t \t <artifactId>slf4j-api</artifactId> 
 
\t \t <version>1.7.5</version> 
 
\t </dependency> 
 
\t <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> 
 
    \t \t </plugins> 
 
    \t </build> 
 
</project>

SRC/основные/ресурсы >> 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/главная/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"); 
    } 

} 
+0

Проверьте доступ для записи –

+0

Доступ на запись в порядке. Мне удалось создать blah.txt в корневом каталоге. Я обновил вопрос, чтобы добавить эту заметку. Спасибо. – chapstick

ответ

1

Прежде всего - похоже, что вы хотите использовать log4j для ведения журнала, но у вас нет надлежащего binding i.e. slf4j-log4j12-1.7.10.jar. Позаботьтесь о том, чтобы удалить существующую зависимость slf4j-simple!

Во-вторых, проблема с именами: Я бы рекомендовал вам использовать logback как обязательный, поскольку он довольно гибкий в конфигурации. См. Например. time based rolling.

+0

Хороший звонок! Заменили slf4-simple с slf4j-log4j12. Спасибо. – chapstick

+0

У вас есть хороший пример logback, на который вы можете ссылаться? – chapstick

+0

Вы имеете в виду пример файла конфигурации? один находится в ссылке, которую я предоставил. или вы ищете что-то конкретное? – sodik

Смежные вопросы