Note : log4j.jar mandatory required.
step - 1 )
create a class Log :
syntax :
/**
* This file is property of IMImobile pvt ltd.
* Copyright(c) 2008 IMImobile pvt ltd. All rigths reserved.
*/
package util;
import java.io.File;
import org.apache.log4j.Appender;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.SimpleLayout;
public class Log {
private static Logger myLogger = Logger.getLogger(Log.class.getName());
Appender myAppender;
SimpleLayout myLayout;
public Log() {
PropertyConfigurator.configure(LogConstants.LOG_PROP_PATH);
File file = new File(LogConstants.LOG_PROP_PATH);
System.out.println(">>> Abs Path : "+file.getAbsolutePath());
}
// public static void initLogging() {
// PropertyConfigurator.configure(LogConstants.LOG_PROP_PATH);
// }
// public static void initLogging(String argLogPropPath) {
// PropertyConfigurator.configure(argLogPropPath);
// }
public static void debug(String argMessage, Exception ex) {
// log into {imiclient_name}_{proj_name}_debug.log
myLogger.debug(argMessage, ex);
}
public static void debug(String argMessage) {
// log into {imiclient_name}_{proj_name}_debug.log
myLogger.debug(argMessage);
}
public static void info(String argMessage, Exception ex) {
// log into {imiclient_name}_{proj_name}_info.log
myLogger.info(argMessage, ex);
}
public static void info(String argMessage) {
// log into {imiclient_name}_{proj_name}_info.log
myLogger.info(argMessage);
}
public static void error(String argMessage, Exception ex) {
// log into {imiclient_name}_{proj_name}_error.log
myLogger.error(argMessage, ex);
}
public static void error(Exception ex) {
// log into {imiclient_name}_{proj_name}_error.log
myLogger.error(ex);
}
public static void error(String argMessage) {
// log into {imiclient_name}_{proj_name}_error.log
myLogger.error(argMessage);
}
// public static void debug(String argClass, String argMessage, Exception ex) {
// debug(argClass, argMessage);
// ex.printStackTrace();
// }
//
// public static void debug(String argClass, String argMessage) {
// ConvertDate date = new ConvertDate();
// String className = date.getToday() + "[" + argClass + "] : ";
// System.out.println(className + argMessage);
// }
//
// public static void error(String argClass, String argMessage, Exception ex) {
// error(argClass, argMessage);
// ex.printStackTrace();
// }
//
// public static void error(String argClass, String argMessage) {
// argMessage = "[EXCEPTION] : " + argMessage;
// debug(argClass, argMessage);
// }
}
step - 1 )
create a class Log :
syntax :
/**
* This file is property of IMImobile pvt ltd.
* Copyright(c) 2008 IMImobile pvt ltd. All rigths reserved.
*/
package util;
import java.io.File;
import org.apache.log4j.Appender;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.SimpleLayout;
public class Log {
private static Logger myLogger = Logger.getLogger(Log.class.getName());
Appender myAppender;
SimpleLayout myLayout;
public Log() {
PropertyConfigurator.configure(LogConstants.LOG_PROP_PATH);
File file = new File(LogConstants.LOG_PROP_PATH);
System.out.println(">>> Abs Path : "+file.getAbsolutePath());
}
// public static void initLogging() {
// PropertyConfigurator.configure(LogConstants.LOG_PROP_PATH);
// }
// public static void initLogging(String argLogPropPath) {
// PropertyConfigurator.configure(argLogPropPath);
// }
public static void debug(String argMessage, Exception ex) {
// log into {imiclient_name}_{proj_name}_debug.log
myLogger.debug(argMessage, ex);
}
public static void debug(String argMessage) {
// log into {imiclient_name}_{proj_name}_debug.log
myLogger.debug(argMessage);
}
public static void info(String argMessage, Exception ex) {
// log into {imiclient_name}_{proj_name}_info.log
myLogger.info(argMessage, ex);
}
public static void info(String argMessage) {
// log into {imiclient_name}_{proj_name}_info.log
myLogger.info(argMessage);
}
public static void error(String argMessage, Exception ex) {
// log into {imiclient_name}_{proj_name}_error.log
myLogger.error(argMessage, ex);
}
public static void error(Exception ex) {
// log into {imiclient_name}_{proj_name}_error.log
myLogger.error(ex);
}
public static void error(String argMessage) {
// log into {imiclient_name}_{proj_name}_error.log
myLogger.error(argMessage);
}
// public static void debug(String argClass, String argMessage, Exception ex) {
// debug(argClass, argMessage);
// ex.printStackTrace();
// }
//
// public static void debug(String argClass, String argMessage) {
// ConvertDate date = new ConvertDate();
// String className = date.getToday() + "[" + argClass + "] : ";
// System.out.println(className + argMessage);
// }
//
// public static void error(String argClass, String argMessage, Exception ex) {
// error(argClass, argMessage);
// ex.printStackTrace();
// }
//
// public static void error(String argClass, String argMessage) {
// argMessage = "[EXCEPTION] : " + argMessage;
// debug(argClass, argMessage);
// }
}
step -2 :
create a class LogConstants ;
Note : This class is helpful to set the custom properties file
syntax : config/log/log4j.properties ( Should in your root directory any custom name)
public class LogConstants {
public static String LOG_PROP_PATH = "config/log/log4j.properties";
}
Step-3 : log4j.properties ( Important , we can change the format of logs as per our requirement in log4j.properties )
log4j.rootLogger=debug, stdout, ALL
#log4j.debugLogger=ALL, DEBUG
#log4j.infoLogger=ALL, INFO
#log4j.errorLogger=ALL, ERROR
# stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
# date log_level thread_name class_name message line_seperator
log4j.appender.stdout.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss.SSS} [%16t] [%5p] - %m%n
# log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# ALL
log4j.appender.ALL=org.apache.log4j.RollingFileAppender
log4j.appender.ALL.File=D:/log.txt ( Here log info will be appended )
log4j.appender.ALL.MaxFileSize=20120KB
# Keep one backup file
log4j.appender.ALL.MaxBackupIndex=50
log4j.appender.ALL.layout=org.apache.log4j.PatternLayout
# timeinterval date log_level thread_name class_name message line_seperator
log4j.appender.ALL.layout.ConversionPattern=%-3r %d{dd/MM/yyyy HH:mm:ss.SSS} [%5p] [%t] [%c] - %m%n
# DEBUG
log4j.appender.DEBUG=org.apache.log4j.RollingFileAppender
log4j.appender.DEBUG.File=D:/VideoconBillingHandler/log.txt
log4j.appender.DEBUG.MaxFileSize=20120KB
# Keep one backup file
log4j.appender.DEBUG.MaxBackupIndex=50
log4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout
# timeinterval date log_level thread_name class_name message line_seperator
log4j.appender.DEBUG.layout.ConversionPattern=%-3r %d{dd/MM/yyyy HH:mm:ss.SSS} [%5p] [%t] [%c] - %m%n
# INFO
log4j.appender.INFO=org.apache.log4j.RollingFileAppender
log4j.appender.INFO.File=D:/VideoconBillingHandler/log.txt
log4j.appender.INFO.MaxFileSize=20120KB
# Keep one backup file
log4j.appender.INFO.MaxBackupIndex=50
log4j.appender.INFO.layout=org.apache.log4j.PatternLayout
# timeinterval date log_level thread_name class_name message line_seperator
log4j.appender.INFO.layout.ConversionPattern=%-3r %d{dd/MM/yyyy HH:mm:ss.SSS} [%5p] [%t] [%c] - %m%n
# ERROR
log4j.appender.ERROR=org.apache.log4j.RollingFileAppender
log4j.appender.ERROR.File=D:/VideoconBillingHandler/log.txt
log4j.appender.ERROR.MaxFileSize=20120KB
# Keep one backup file
log4j.appender.ERROR.MaxBackupIndex=50
log4j.appender.ERROR.layout=org.apache.log4j.PatternLayout
# timeinterval date log_level thread_name class_name message line_seperator
log4j.appender.ERROR.layout.ConversionPattern=%-3r %d{dd/MM/yyyy HH:mm:ss.SSS} [%5p] [%t] [%c] - %m%n
Main Class :
example :
public class Main {
public static void main(String[] args) {
// Note : we can able to trace the logs in our console as well as in the log.txt file which we have been defined in log4j.properties configuration file.
Log log= new Log();
Log.debug("welcome");
}
}