Nitin
Nitin

Reputation: 59

Log 4j file is not generating/i don't know the path

  1. I am a learner of java and log4j.
  2. I just want to have the output of all logs in a .log file its not getting generated or i don't know path.
  3. I am just using eclipse and running my program on it .Please post if you have a simple program which can help me to learn log4j and how can i use it in project thanks in advance.

//This Is my Java File///

package test;
import org.apache.log4j.Logger;
import java.io.*;

public class LoggingSample {
    private static Logger logger = Logger.getLogger("LoggingExample");

    public static void main(String[] args) {
        try {
            FileInputStream fstream = new FileInputStream("D:\\textfile.txt");
            DataInputStream in = new DataInputStream(fstream);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String strLine;
            while ((strLine = br.readLine()) != null) {
                System.out.println(strLine);
            }
            in.close();
        } catch (FileNotFoundException fe) {
            logger.error("File Not Found", fe);
            logger.warn("This is a warning message");
            logger.trace("This message will not be logged since log  level is set as DEBUG");
        } catch (IOException e) {
            logger.error("IOEXception occured:", e);
        }
    }
}

//// This Is my property file////

log4j.rootLogger=INFO,CONSOLE,R
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=./logs/testlog.log
log4j.appender.R.MaxFileSize=200KB
log4j.appender.R.MaxBackupIndex=2
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d - %c - %p - %m%n

Upvotes: 3

Views: 2712

Answers (4)

Nitin
Nitin

Reputation: 59

1.log4j configuration file (log4j.properties) does not exist on the classpath. So i put the log4j.property on folder target/classes.

2.Replaced that everything is working now thanks all & @optuyvu

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

import java.io.*;
public class LoggingSample {
 private static Logger logger=Logger.getLogger("LoggingExample");
 static {
      PropertyConfigurator.configure("D:/Vikas/LoggingExample/log4j.properties");
 }
  public static void main(String[] args){
   try{
      FileInputStream fstream = new FileInputStream("D:\\textfile.txt");
      DataInputStream in = new DataInputStream(fstream);
      BufferedReader br = new BufferedReader(new InputStreamReader(in));
      String strLine;
       while ((strLine = br.readLine()) != null){
     System.out.println (strLine);
      }
      in.close();
   }catch (FileNotFoundException fe){
     logger.error("File Not Found",fe);
        logger.warn("This is a warning message");
        logger.trace("This message will not be logged since log  level is     set as DEBUG");
   }catch (IOException e){
     logger.error("IOEXception occured:", e);
  }
 }
}

Upvotes: 0

Ace
Ace

Reputation: 710

You could add your custom path as below

log = /usr/home/log4j
log4j.appender.R.File=${log}/MyLog.log

EDIT

Adding my entire property file

log4j.rootLogger=INFO,Console,FILE

log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n


log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d - %c - %p - %m%n
log4j.appender.FILE.File=C:/Log/MyLog.log

Upvotes: 2

optuyvu
optuyvu

Reputation: 11

It seems that the log4j configuration file (log4j.properties) does not exist on the classpath. Try to put the log4j.property on folder target/classes

Another way is that you can specify log4j to load your configuration file

static {
        PropertyConfigurator.configure("C:\\log4j.properties");
    }

Upvotes: 1

Abhinav Sahu
Abhinav Sahu

Reputation: 302

If you don't know path the use

log4j.appender.file.File=${catalina.base}/logs/mylog.log

it generate the file in log folder of server i.e tomcat log folder.

Upvotes: 0

Related Questions