小弟出血者,请大家不吝赐教啊
这又是什么错啊?
type Status reportmessage /sms/register.dodescription The requested resource (/sms/register.do) is not available.
这又是什么错啊?
type Status reportmessage /sms/register.dodescription The requested resource (/sms/register.do) is not available.
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
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
页面信息可以使用bean:message标签
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].
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
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 ");
}}