小弟出血者,请大家不吝赐教啊 
这又是什么错啊?
type Status reportmessage /sms/register.dodescription The requested resource (/sms/register.do) is not available.

解决方案 »

  1.   

    请问大家struts 中log4J怎么配置?
      

  2.   


    import javax.servlet.*;
    import javax.servlet.http.HttpServlet;
    import org.apache.log4j.PropertyConfigurator;public class Log4jInit
        extends HttpServlet {
      public Log4jInit() {  }  public void init() throws ServletException {
        String configPath = Sys.SYSINFO.configDir ;  
        // 这是系统定义的一个常量 
        // 如: c:/log4j.properties 同时,在c:盘下必须有这个文件    if (configPath.charAt(configPath.length() - 1) != '/') {
          configPath += "/";
        }
        PropertyConfigurator.configure(configPath);
      }
    }log4j.properties 文件内容:log4j.rootLogger=INFO,A1,R           
    //控制台日志
    log4j.appender.A1=org.apache.log4j.ConsoleAppender
    log4j.appender.A1.Target=System.out
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p]: %m%n
    //日记型文件日志
    log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.R.File=C:/log/msg.log4j     //具体日志记录文件路径
    log4j.appender.DatePattern=yyyyMMdd-HH'.log4j'
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p]: %m%n
      

  3.   

    # Set root logger level to ERROR and its only appender to R.
    log4j.rootLogger = INFO,R# R is set to be a DailyRollingFileAppender.
    log4j.appender.R = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.R.File = Application.log
    log4j.appender.R.DatePattern = yyyy-MM-dd'.log'
    log4j.appender.R.layout = org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
      

  4.   

    页面信息国际化还是用户内容信息国际化?
    页面信息可以使用bean:message标签
      

  5.   

    我配置log4j,记得以前自动修改日志文件的,现在不可以了,报下面错误,是我安装了天网防火墙的原因吗,如何设置才能正确呢?
    log4j:ERROR Failed to rename [e:\Tomcat 5.5/logs/tomcat5.5.log] to [e:\Tomcat 5.5/logs/tomcat5.5.log2005-05-08.log].
      

  6.   

    我的log4j文档内容
    log4j.rootLogger=INFO,F,CON
    log4j.appender.CON=org.apache.log4j.ConsoleAppender
    log4j.appender.CON.layout=org.apache.log4j.PatternLayout
    log4j.appender.CON.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss} %c %m%nlog4j.appender.F=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.F.File=${catalina.home}/logs/tomcat5.5.log
    log4j.appender.F.DatePattern = yyyy-MM-dd'.log'
    #log4j.appender.F.MaxFileSize=10MB
    #log4j.appender.R.MaxBackupIndex=10
    log4j.appender.F.layout=org.apache.log4j.PatternLayout
    log4j.appender.F.layout.ConversionPattern=%-5p %d{yyyy-MM-dd HH:mm:ss,SSS} %c %m%n
    #log4j.logger.org.apache.catalina=INFO,F
    #log4j.logger.org.apache.catalina.core.ContainerBase.Catalina.localhost=INFO,F
    #log4j.logger.org.apache.catalina.core=INFO,F
    #log4j.logger.org.apache.catalina.session=INFO,F
      

  7.   

    #log 配置
    usplog.classmessage=true
    log4j.rootLogger=INFO, A1 , R
    log4j.appender.A1=com.tools.ConsoleAppender
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=app :%-d{yyyy-MM-dd HH:mm:ss} -[%p] %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=../logs/usmlog.txt
    log4j.appender.R.MaxFileSize=1000KB
    log4j.appender.R.MaxBackupIndex=10
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    #log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
    log4j.appender.R.layout.ConversionPattern=USM :%-d{yyyy-MM-dd HH:mm:ss} -[%p] %m%nimport org.apache.log4j.*;
    import java.util.Properties;
    import java.io.*;/**
     * <p>Title: Monitor 日志类</p>
     * <p>Description: 日志类,替代System.out.println()
     *    日志输入出媒介,日志格式,日志是否显示当前类信心都可以配置
     *    系统启动时需要初始化这个类 使用函数 uspLogInit
     * <p>Copyright: Copyright (c) 2004</p>
     */
    public final class UspLog
    {    //配置文件中键值,类的信息是否打印出来
        //由于获取类的信息效率很低,正式运行后关闭此选项
        public static String ROOT_LOGGER_PREFIX = "usplog.classmessage";    private static Logger curLog = null;    private static String isClassMessage = "false";    //属性结构,初始化后其他需要读配置文件的模块可直接使用
        // private static Properties pro = new Properties();
        /**
         * 初始化方法,只需调用一次,使用系统指定的文件初始化
         * @param nowpro Properties 配置文件对象
         */
        public static void uspLogInit(Properties nowpro)
        {        PropertyConfigurator.configure(nowpro);
            curLog = Logger.getRootLogger();
            isClassMessage = nowpro.getProperty(ROOT_LOGGER_PREFIX);
        }
        /**
         * 使用缺省的配置文件初始化
         */
        public static void uspLogInit()
        {
            try
            {
                if(curLog != null)
                    return;            java.io.InputStream is = (new UspLog()).getClass().
                    getResourceAsStream(
                        "Config.properties");
                           if(is == null)
                {
                    is = new FileInputStream(new File("Config.properties"));
                }            Properties pro = new Properties();
                pro.load(is);            isClassMessage = pro.getProperty(ROOT_LOGGER_PREFIX);
                PropertyConfigurator.configure(pro);
                curLog = Logger.getRootLogger();        }
            catch(Exception ex)
            {
                UspLog.error("UspLog init error",ex);
                System.out.println("can't find config file: Config.properties");;
            }
        }
    //  static {
    //    uspLogInit();
    //  }    /**
         * 打印调试信息
         * 由于服务器也会使用这个类,所有调试信息会很多
         * 一般情况下不需使用这个方法,所以私有这个方法
         * @param message Object
         */
        private static void debug(Object message)
        {        curLog.debug(message + getClassMessage());
        }
        /**
         * 打印一般信息
         * 级别最低
         * @param message Object
         */
        public static void info(Object message)
        {
            String classMessage = getClassMessage();
            if (!USMLogFilter.filterOKReverse(classMessage) )
            {            curLog.info(message + classMessage);
            }
        }
        /**
         * 打印警告信息
         * @param message Object
         */
        public static void warn(Object message)
        {
            String classMessage = getClassMessage();        if (!LogFilter.filterOKReverse(classMessage) )
            {            curLog.warn(message + classMessage);
            }
        }
        /**
         * 打印错误信息
         * @param message Object
         */
        public static void error(Object message)
        {
            String classMessage = getClassMessage();
            if (!LogFilter.filterOKReverse(classMessage) )
            {            curLog.error(message + classMessage);
            }
        }
        /**
         * 打印错误信息
         * @param message Object
         */
        public static void error(Object message,Throwable ta)
        {
            String classMessage = getClassMessage();
            if (!LogFilter.filterOKReverse(classMessage) )
            {
                curLog.error(message + classMessage, ta);
            }
        }
        /**
         * 打印致命信息
         * 系统出现此类错误,无法进行任何操作
         * @param message Object
         */
        public static void fatal(Object message)
        {
            String classMessage = getClassMessage();
            if (!LogFilter.filterOKReverse(classMessage) )
            {            curLog.fatal(message + classMessage);
            }
        }
        public static void fatal(Object message,Throwable ta)
        {
            String classMessage = getClassMessage();
            if (!USMLogFilter.filterOKReverse(classMessage) )
            {            curLog.fatal(message + classMessage, ta);
            }
        }
        private static Exception ex = new Exception();
        /**
         * 获取在哪个类中哪一行
         * @param config
         */
        private static String getClassMessage()
        {        if("TRUE".equalsIgnoreCase(isClassMessage))
            {
                StringBuffer bf = new StringBuffer();
                try
                {
                    ex.fillInStackTrace();
                    throw ex;
                }
                catch(Exception ex)
                {
                    StackTraceElement[] trace = ex.getStackTrace();
                    bf.append(" [class:");
                    bf.append(trace[2].getClassName());
                    bf.append("  line:");
                    bf.append(trace[2].getLineNumber());
                    bf.append("]");
                }
                return bf.toString();
            }
            else
                return "";    }
        public static void main(String[] arg) throws IOException
        {        //在系统初始化时配置日志类
    //    Properties pro = new Properties();
    //    pro.load(new FileInputStream("config.properties"));
    //    UspLog.uspLogInit(pro);
    //
    //    如果没有初始化,使用缺省的配置
            //按不同级别打印消息
            UspLog.info("Test Message info ");
            UspLog.warn("Test Message debug ");
        }}
      

  8.   

    来 7232400 QQ群吧!STRUTS学习的好去处。大家一起进步!