怎么说呢,感觉还是配得太过于复杂了我想应该有很多这样类似的配置文件得,另外孙卫琴得书里也讲了,你最好去看一下还有如果你要在控制台里输入对数据库访问得错误信息,我这里可以写几句,当然或许还有其他得写法:首先引入
import org.logicalcobwebs.logging.Log;
import org.logicalcobwebs.logging.LogFactory;在类中
public class MyTest{
  .....
  Log log = LogFactory.getLog("MyTest.class");
  ......
  //对数据库的操作
  try{
   .......     //对数据库的操作
  }catch(SQLException ex){
    log.error("对数据库操作发生错误拉");
    ex.printStackTrace();  //最好加上这句
  }}

解决方案 »

  1.   

    抱歉 有句写错了:
    Log log = LogFactory.getLog("MyTest.class");
    应该是 Log log = LogFactory.getLog(MyTest.class);
      

  2.   

    楼上的方法我也知道
    问题是不光是数据库错误
    还有很多系统的其他错误日志文件里面也看不到
    我现在的问题是不使用log.error方法
    让系统本身抛出的错在日志文件里面可以看到
    请问具体怎么配置?程序里面是这么用的:
    public class LotteryRecon {
    static  private Logger logger = Logger.getLogger(LotteryRecon.class);
        /**
     * 
     */
    public LotteryRecon() {
    super();
    // TODO 自动生成构造函数存根
    } public static void main(String args[]) {

    LotteryRecon lr=new LotteryRecon(); 
    DOMConfigurator.configure("e:/lotteryRecon/log4j.xml");

    try {
    lr.recon();         //
    } catch (IOException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    } }
    }
      

  3.   

    log4j.appender.A2 = org.apache.log4j.RollingFileAppender
    log4j.appender.A2.File =../../log/test.log
    log4j.appender.A2.MaxFileSize = 1KB
    log4j.appender.A2.MaxBackupIndex = 3
    log4j.appender.A2.layout = org.apache.log4j.PatternLayout
    log4j.appender.A2.layout.ConversionPattern = %d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%npackage powerwind.servlet;
     
    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
     
    import javax.servlet.*;
    import javax.servlet.http.*;
     
    public class Log4jInit extends HttpServlet {
    public void init(ServletConfig config) throws ServletException {
            super.init(config);
            String prefix = getServletContext().getRealPath("/");
            String file = getInitParameter("log4j"); 
            System.out.println("init log4j...");
            if (file != null){
              PropertyConfigurator.configure(prefix+file);
            }else
            {
                     PropertyConfigurator.configure(prefix+"log4j.properties");
            }
    }
    }详情参考:http://blog.csdn.net/Windy83/archive/2006/11/01/1361550.aspx
      

  4.   

    我认为你的log4j配置也没有什么大问题,如果异常没有正常显示,可能是被你的try..catch压抑掉了,主要是在过滤器的地方检查一下
      

  5.   

    楼上的几位好像都是用properties来配置的阿
    如果用xml配置的话会不会用什么不一样呢
    我现在是用logger.error等输出的文件里面看的到
    但是系统本身抛出的错文件里面看不到
    不知道说的清不清楚
      

  6.   

    我认为你的log4j配置也没有什么大问题,如果异常没有正常显示,可能是被你的try..catch压抑掉了,主要是在过滤器的地方检查一下
    如果是try..catch抓住了,那控制台里面应该也看不到错了吧?
    现在是控制台里面能看到错,但就是输出不到文件里面
      

  7.   

    did you log the Exception? try belowlogger.error( String error, Throwable t );This will log the stack traceAlso, if runtime exception occurs, you can adopt AOP faculities to manages that