简体   繁体   中英

log4j not writing to file

The log file has been created in the specified location but the contents are not entered in the file. it is always empty.

import org.apache.log4j.Logger;
 public class LogFile {
public static void log(String msg){
    System.out.println("logfileee==="+msg);
    Logger logger = Logger.getLogger(LogFile.class);
    logger.info(msg);
}
 }


 log4j.rootLogger=INFO, R
 log4j.appender.A1=org.apache.log4j.ConsoleAppender
 log4j.appender.A1.layout=org.apache.log4j.PatternLayout
 log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n
 log4j.appender.R = org.apache.log4j.DailyRollingFileAppender
 log4j.appender.R.Append = true
 log4j.appender.R.DatePatter    n = '.'yyy-MM-dd
 log4j.appender.R.File = D:/logs/testing.log
 log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n
 log4j.category.DataNucleus.JDO=WARN, A1
 log4j.category.DataNucleus.Persistence=WARN, A1
 log4j.category.DataNucleus.Connection=WARN, A1
 log4j.category.DataNucleus.Cache=WARN, A1
 log4j.category.DataNucleus.MetaData=WARN, A1
 log4j.category.DataNucleus.General=WARN, A1
 log4j.category.DataNucleus.Utility=WARN, A1
 log4j.category.DataNucleus.Transaction=WARN, A1
 log4j.category.DataNucleus.Datastore=WARN, A1
 log4j.category.DataNucleus.ClassLoading=WARN, A1
 log4j.category.DataNucleus.Plugin=WARN, A1
 log4j.category.DataNucleus.ValueGeneration=WARN, A1
 log4j.category.DataNucleus.Enhancer=WARN, A1
 log4j.category.DataNucleus.SchemaTool=WARN, A1
 log4j.category.DataNucleus.Query=WARN, A1
 log4j.category.DataNucleus.Reachability=WARN, A1
 log4j.category.DataNucleus.Lifecycle=WARN, A1
 log4j.logger.org.springframework=INFO, A1

Iam gettting the file testing.log created in the specified location Does anyone knows what i have done wrong????

Your properties file is having too many entries. I would suggest create a clean file with only two appender: file and console and see what going on. try to turn file appender off and see if messages are getting printed on console. And further turn on the file appender. Make sure the properties file is in classpath.

Here is what I tried and is working for both console and log file appender.

Log4j properties file:

# Root logger option
log4j.rootLogger=INFO, file, stdout

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/tmp/logging.log
log4j.appender.file.MaxFileSize=10MB
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

# Direct log messages to stdout
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{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

sample program:

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Log4JTest {
static final String LOG_PROPERTIES_FILE = "config/log4J.properties";
private final static Logger LOGGER = Logger.getLogger(Log4JTest.class);

public static void main(String[] args)
  {
    // call our constructor
    Log4JTest log4JTest = new Log4JTest();
    log4JTest.initializeLogger();

    // Log4J is now loaded; try it
    LOGGER.info("leaving the main method of Log4JDemo");
  }

private void initializeLogger() {
    Properties logProperties = new Properties();

    try {
        ClassLoader classLoader = getClass().getClassLoader();
        File file = new File(classLoader.getResource(LOG_PROPERTIES_FILE).getFile());

        // load our log4j properties / configuration file
        logProperties.load(new FileInputStream(file));
        PropertyConfigurator.configure(logProperties);
        LOGGER.info("Logging initialized.");
    } catch (IOException e) {
        throw new RuntimeException("Unable to load logging property "
                + LOG_PROPERTIES_FILE);
    }
}

}

Pom file

<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.mysample</groupId>
<artifactId>java-samples</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>java-samples</name>
<description>java-samples</description>

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

<dependencies>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
</dependencies>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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