Logger 对象用来记录特定系统或应用程序组件的日志消息。一般使用圆点分隔的层次名称空间来命名 Logger。
一 、
java.util.logging.Logger
用某个 getLogger 工厂方法来获得 Logger 对象
Logger log=Logger.getLogger(this.getClass().getName());
二、
org.apache.log4j.Logger
Logger log=Logger.getLogger(Hello.class);
****************************************************************************************
使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为:
public static Logger getLogger( String name)
通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。
Name一般取本类的名字,比如:
static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () )
②读取配置文件
当获得了日志记录器之后,第二步将配置Log4j环境,其语法为:
BasicConfigurator.configure (): 自动快速地使用缺省Log4j环境。
PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。
例:PropertyConfigurator.configure(".\\src\\log4j.properties")
DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
③插入记录信息(格式化日志信息)
当上两个必要步骤执行完毕,就可轻松地使用不同优先级别的日志记录语句插入到您想记录日
志的任何 地 方,其语法如下:
Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;
在web程序中使用log4j注意问题
1、 由于jsp或servlet在执行状态时没有当前路径概念,所有使用PropertyConfigurator.configure(String)语句找log4j.properties文件时要给出相对于当前jsp或servlet的路径转化成为一个绝对的文件系统路径。方法是使用 servletcontext.getrealpath(string)语句。例:
//得到当前jsp路径
String prefix = getServletContext().getRealPath("/");
//读取log4j.properties
PropertyConfigurator.configure(prefix+"\\WEB-INF\\log4j.properties");
2、相应的log4j.properties设置某个属性时也要在程序中设置绝对路径。例:
log4j.appender.R.File属性设置日志文件存放位置。我们可以用读写.properties配置文件的方法进行灵活设置。
*********************************************************
一个实例:
一:
配置一个名为log4j.properties 文件,放到项目的src文件下面即可
log4j.rootLogger= INFO, A1 , R
log4j.appender.A1=org.apache.log4j.ConsoleAppender
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.RollingFileAppender
#指定日志文件放的位置
log4j.appender.R.File=D:/env/environment/webEnv/WEB-INF/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
log4j.appender.R.layout.ConversionPattern=%d %-5p [%t] (%13F:%L) %3x - %m%n
二:
在src下建一个初始化的servlet让程序启动时加载log4j.properties文件
import javax.servlet.http.HttpServlet;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Log4jInit extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init() {
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j");
// if the log4j-init-file is not set, then no point in trying
System.out.println("- Log4j start");
if(file != null) {
PropertyConfigurator.configure(prefix+file);
}
Logger _logger = Logger.getLogger (Log4jInit.class);
_logger.info("- Log4j Test Successfully!");
}
}
三:在web.xml中配置这个Log4jInit .java这个servlet
<servlet>
<servlet-name>log4jlog4j-init</servlet-name>
<servlet-class>Log4jInit</servlet-class>
<init-param>
<param-name>log4j</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
posted on 2008-01-08 22:39
Crying 阅读(234)
评论(0) 编辑 收藏 所属分类:
JAVA基础