package log;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Log {
    //Logger实例
    private Logger loger;
    //将Log类封装成单实例的模式,独立于其他类。以后要用到日志的地方只要获得Log的实例就可以方便使用
    private static Log log;
                         
    //构造函数,用于初始化Logger配置需要的属性
    private Log() {
    //获得当前目录路径
    String filePath = this.getClass().getResource("/").getPath().replaceAll("%20", " ");
    //找到log4j.properties配置文件所在的目录(已经创建好)
    filePath = filePath.substring(1).replace("bin", "src");
    //获得日志类loger的实例
    loger = Logger.getLogger(this.getClass());
    //loger所需的配置文件路径
    PropertyConfigurator.configure(filePath + "log4j.properties");
                         
    }
                         
    static Log getLoger() {
    if (log != null)
        return log;
    else
        return new Log();
    }
                         
    //测试函数
    public static void main(String args[]) {
    Log log = Log.getLoger();
    for (int i = 0; i < 100000; i++) {
        log.loger.info("测试日志"+i);
    }
                         
    }
}

log4j.properties 文件放在src下面

#定义DEBUG优先级,R为日志输出目的的 
log4j.rootLogger=DEBUG, R
#设置日志输出类型,为文件类型
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#设置日志文件名my.log
log4j.appender.R.file=logs/my.log
#设置日志文件的大小
log4j.appender.R.MaxFileSize= 2KB
#设置每天生成一个日志
org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.DatePattern = '_'yyyy-MM-dd'.log'
#每次在文件尾写入新的日志信息
log4j.appender.R.Append=true
#日志输出信息格式类型
log4j.appender.R.layout=org.apache.log4j.PatternLayout
#日志输出信息格式为 换行、换行、日期、优先级、[类名]、日志信息、换行
log4j.appender.R.layout.ConversionPattern=%n%n%d%p[%c]-%m%n


后再任何需要记录日志的地方只要使用下面语句就行了

Log log =Log.getLoger();

log.loger.info("123");