log4j.appender.LOGFILE.File的路径默认就是Tomcat的bin想修改到其它目录而又不想用绝对路径的话,就使用相对路径。比如,你如果想设置为Tomcat目录下的LOG目录,就用
og4j.appender.LOGFILE.File=..\LOG\shitingguanai.log

解决方案 »

  1.   

    我想把log输出到我的应用下的log目录中,如下设置了路径:
    log4j.appender.LOGFILE.File=..\webapps\onlinehome\log\shitingguanai.log但是不行啊,同志,它还是打到bin目录下了,不过文件名叫作“..webappsonlinehomelogshitingguanai.log”我ft了!!!还有,log4j.properties的位置,有规定么?必须放到src下么?
    谢谢指教!
      

  2.   

    修改CONF文件夹下的logging配置文件############################################################
    # Handler specific properties.
    # Describes specific configuration info for Handlers.
    ############################################################1catalina.org.apache.juli.FileHandler.level = FINE
    1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
    1catalina.org.apache.juli.FileHandler.prefix = catalina.2localhost.org.apache.juli.FileHandler.level = FINE
    2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
    2localhost.org.apache.juli.FileHandler.prefix = localhost.3manager.org.apache.juli.FileHandler.level = FINE
    3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
    3manager.org.apache.juli.FileHandler.prefix = manager.4admin.org.apache.juli.FileHandler.level = FINE
    4admin.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
    4admin.org.apache.juli.FileHandler.prefix = admin.5host-manager.org.apache.juli.FileHandler.level = FINE
    5host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
    5host-manager.org.apache.juli.FileHandler.prefix = host-manager.java.util.logging.ConsoleHandler.level = FINE
    java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter把这里的输出目录全部改掉就OK了
      

  3.   

    C:\Tomcat 5.0\conf
    文件夹下没有叫做logging的文件啊?!?!
      

  4.   

    只有catalina.properties和jk2.properties,没有logging.properties
    要自己建一个么??
      

  5.   

    package test;import java.sql.*;public class test
    {
    String sDBDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    String sConnStr="jdbc:microsoft:sqlserver://localhost:8080;DatabaseName=bookshop";
    String user = "sa";
    String password = "123456";
    Connection conn=null;
    ResultSet rs=null;public test()
    {
    try{
    Class.forName(sDBDriver);
    }
     catch(java.lang.ClassNotFoundException e)
     {
     System.err.println("错误是: personbean():"+e.getMessage());
     }
    }
    //首页显示所有的记录,查询所有的数据;
    public ResultSet executeQuery_FindAll()
    {
    String sql_FindAll="select id,title,name,body from body";
    rs=null;
    try
    {
    conn=DriverManager.getConnection(sConnStr,user,password);
    Statement stmt=conn.createStatement();
    rs=stmt.executeQuery(sql_FindAll);
    }catch(SQLException ex)
    {
    System.err.println("aq.executeQuery:"+ex.getMessage());
    }
    return rs;
    }
    }
    :com.microsoft.jdbc.sqlserver.SQLServerDriver 
    No suitable driver  
    这两项都报了错 
    我怀疑可能是SQL SERVER的驱动没装好 
    但是在JSP里面又可以用请高手帮忙看看 谢谢
      

  6.   

    把配置文件改成log4j.rootLogger=info,  R
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=D:\Tomcat 5.0/logs/log4j.log
    log4j.appender.R.MaxFileSize=100KB
    log4j.appender.R.MaxBackupIndex=1
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n试试看吧
      

  7.   

    把你的SQL SERVER的驱动方到Tomcat下的common\lib目录下试试,如果不行在把驱动加到CLASSPATH中
      

  8.   

    也不好用,这回连log都没有。我以前也试过绝对路径,也不行。
      

  9.   

    ../webapps/onlinehome/log/shitingguanai.log
      

  10.   

    我记得我这样试过一次,不好用的。今天又试了一天,竟然成功了!!我FT!!!anyway, 3Q!!!
      

  11.   

    还有个问题:
    log4j.properties文件的位置怎么指定啊?
    必须放在src目录下么?
      

  12.   

    web.xml 添加一下初始化的Servlet如下:
    <servlet>
    <servlet-name>Init</servlet-name>
    <servlet-class>
    cn.dapei.common.config.InitServlet
    </servlet-class>
    <init-param>
    <param-name>log4j</param-name>
    <param-value>/WEB-INF/conf/log4j.properties</param-value>
    <!-- 这个路径也可以自己定义-->
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>初始化Servlet的代码如下:
    public class InitServlet extends javax.servlet.http.HttpServlet
    implements javax.servlet.Servlet
    {
    private static Logger logger;
    private final String LOG_FILE_PATH = "log4j.appender.file.File";
    /**
     * 
     */
    private static final long serialVersionUID = 1L; public void init() throws ServletException
    {
    try {
    Properties pro = new Properties();
    pro.load(new FileInputStream(getServletContext().getRealPath("/")
    + getInitParameter("log4j")));
    String filePath = getServletContext().getRealPath("/")
    + pro.getProperty(LOG_FILE_PATH);
    File file = new File(filePath);
    if (!file.exists()) {
    file.createNewFile();
    }
    pro.setProperty(LOG_FILE_PATH, filePath);
    PropertyConfigurator.configure(pro);
    logger = Logger.getLogger(InitServlet.class);
    logger.info("加载日志配置成功.");
    } catch (Exception e) {
    throw new ServletException("加载Log4j配置文件失败.异常", e.getCause());
    }

    }
    }
    log4j.properties 配置如下:
    -----------------
    log4j.appender.console=org.apache.log4j.ConsoleAppenderlog4j.appender.console.layout.ConversionPattern=[%p]- %-d{yyyy-MM-dd HH:mm:ss} [%c]- %m%nlog4j.appender.console.layout=org.apache.log4j.PatternLayout#Sat Mar 18 10:02:50 CST 2006
    log4j.appender.file.encoding=GB2312log4j.appender.file.File=WEB-INF/logs/console.log #这具路径是当前应用的根目录,存放位置可以自己定义
    #注意:log4j.appender.file.File这个如果要改变,也需要改初始化Servlet里的常量定义
    log4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d %t %c %p : %m%nlog4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.rootLogger=INFO,console,file
      

  13.   

    3Q !可是我用的是struts,没有办法往init方法中添加代码,怎么办啊?前几天,忘了在哪里看到,说可以使用一个plugin代替,不过看得不是很明白,也没有尝试成功。