log4j.appender.file.File=log.txt你这样的定义已经把你的日志文件输出到%TOMCAT_HOME%/bin目录里面了
建议直接使用绝对路径
log4j.appender.file.File=c:\\log.txt

解决方案 »

  1.   

    %TOMCAT_HOME%/bin下也没有log.txt文件更改路径后
    log4j.appender.file.File=c:\\log.txt
    依然找不到文件是不是生成文件时有问题?
      

  2.   

    给你一个例子 ,在与elipse平级建立applog,在applog下建立logconfig,logdata,在logconfig下建立log4j.propertieslog4j.properties
    #log4j.rootLogger=[priority],appenderName,appenderName,...
    #其中,priority是日志级别,可选值包括OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL
    #在这里定义了INFO级别,则应用程序中所有DEBUG、TRACE、ALL级别的日志消息将不被打印出来
    #appenderName指定Appender组件,用户可以同时指定多个Appender组件#Log4j提供的Appender有以下几种:
    #org.apache.log4j.ConsoleAppender:控制台
    #org.apache.log4j.FileAppender:文件
    #org.apache.log4j.DailyRollingFileAppender:每天产生一个日志文件
    #org.apache.log4j.RollingFileAppender:文件大小到达指定尺寸的时候产生一个新的文件
    #Log4j提供的Layout有以下几种
    # org.apache.log4j.HTMLLayout (以HTML表格形式布局)
    # org.apache.log4j.PatternLayout (可以灵活地指定布局模式)
    # org.apache.log4j.SimpleLayout  (包含日志信息的级别和信息字符串)
    # org.apache.log4j.TTCCLayout (包含日志产生的时间、线程和类别等信息)
    #ConversionPattern格式
    # %d  --产生日志的时间
    # %r  --自程序开始后消耗的毫秒数
    # %t  --表示日志记录请求生成的线程
    # %p  --表示日志语句的优先级别
    # %r  --与日志请求相关的类别名称
    # %c  --日志消息所在的类名
    # %m%n--表示日志消息的内容#设置成根目录,所有包括debug以上级别的信息都打印出来到日志文件中
    #log4j.rootLogger=DEBUG,stdout #设置为debug,表示只能打印出debug级别的信息,如果不想打印,就把DEBUG级别调高
    #printDebugInfo 关联到程序
    log4j.logger.printDebugInfo=DEBUG,D,C  
    #该行可屏蔽终端输出和终止debug输出到文件(记住要屏蔽记录输出到终端的全部三行)
    #log4j.logger.printDebugInfo=INFO,D,C  

    #设置成info,表示只能打印出info级别的信息,如果不想打印,就把INFO级别调高
    log4j.logger.printOperateInfo=INFO,I   
    #把该行屏蔽,即可终止记录用户所有操作
    #log4j.logger.printOperateInfo=INFO,I #设置成error,表示只能打印出error级别的信息,如果不想打印,就把ERROR级别调高
    log4j.logger.printErrorInfo =ERROR,E
    #把该行屏蔽,即可终止记录用户所有操作
    #log4j.logger.printErrorInfo =INFO,E#E(Error)   记录所有错误
    #I(Info)    记录用户所有操作
    #D(Debug)   记录调试信息#记录输出到终端
    log4j.appender.C=org.apache.log4j.ConsoleAppender
    log4j.appender.C.layout=org.apache.log4j.PatternLayout
    log4j.appender.C.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]%m%n#===========记录调试信息========================================
    #记录输出到文件
    log4j.appender.D=org.apache.log4j.RollingFileAppender
    log4j.appender.D.MaxFileSize=100KB
    log4j.appender.D.MaxBackupIndex=1
    #如果直接调用文件的缺省目录是context目录;如果在tomcat中调用缺省目录是context的上级目录(如eclipse)或者tomcat\bin目录
    log4j.appender.D.File=..\\applog\\logdata\\debug_log
    log4j.appender.D.Append=true
    log4j.appender.D.layout=org.apache.log4j.PatternLayout
    log4j.appender.D.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]%m%n
    #===========记录用户所有操作(每天产生一个日志文件)=======================
    log4j.appender.I=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.I.File=..\\applog\\logdata\\info_log
    log4j.appender.I.Append=true
    #log4j.appender.I.Threshold=info
    log4j.appender.I.DatePattern = '.'yyyy-MM-dd
    log4j.appender.I.layout=org.apache.log4j.PatternLayout
    log4j.appender.I.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]%m%n
    #===========记录所有错误(文件大小到达指定尺寸的时候产生一个新的文件)========
    log4j.appender.E=org.apache.log4j.RollingFileAppender
    #日志文件的大小
    log4j.appender.E.MaxFileSize=100KB
    # 保存一个备份文件
    log4j.appender.E.MaxBackupIndex=1
    #日志文件的名称
    log4j.appender.E.File=..\\applog\\logdata\\error_log
    log4j.appender.E.Append=true
    #log4j.appender.E.Threshold=error
    #设置输出格式
    log4j.appender.E.layout=org.apache.log4j.PatternLayout
    log4j.appender.E.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}]%m%nLog.java
    /*
     * Created on 2005-7-6
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package com.wellhead.netmanage.util;import org.apache.log4j.*;
    import java.util.*;/**
     * @author Administrator
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    public class Log {
    private static Logger printDebugLog=Logger.getLogger("printDebugInfo");
    private static Logger printOperateLog=Logger.getLogger("printOperateInfo");
    private static Logger printErrorLog=Logger.getLogger("printErrorInfo");

    static { String configureFile = System.getProperties().getProperty("user.dir")+"\\..\\applog\\logconfig\\"+"log4j.properties" ;
    PropertyConfigurator.configure(configureFile);

    }
    public static void printDebug(String message)
    {
    printDebugLog.debug(message);
    }

    public static void printInfo(String message)
    {
    printOperateLog.info(message);
    }

    public static void printError(String message)
    {

    printErrorLog.debug(message);
    }

    public static void main(String[] args) { Log.printDebug("aaaaaaaaa"); }
    }