看到有些系统能够将管理员每一次操作的详细情况给记录下来, 感觉很人性化。 ^_^ ^_^ ... 于是也寻思着自己也在后台中实现这个功能, 传统的方式是通过使用System.out.println()向控制台输出数据,记录气质跟踪程序的运行情况。
今天到网上搜了一下发现有log4j这个编写日志的工具包, 于是便下载下来了学习一下 , 试验了一下总算是出现了预想中的结果尽管不是完全符合:
——————————网友版: log4j简单使用示例——————————
配置文件如下:
log4j.rootLogger=debug, 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 -(:%L)%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=D://programmer//ideaproj//WorkUtil//testsocket_log.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m -(:%L)%n
初始化Log4j和测试程序如下:
Log4jTest.java
01 import org.apache.log4j.Logger;
02
03 /**
04 * User: Diegoyun
05 * Date: 2006-3-4
06 * Time: 23:21:17
07 */
08 public class Log4jTest {
09 public static void main(String[] args) {
10 String path="D://programmer//ideaproj//WorkUtil//test//log4j.properties";
11 org.apache.log4j.PropertyConfigurator.configure(path);
12 Logger logger = Logger.getLogger(Log4jTest.class);
13 logger.debug("a test.");
14 }
15 }
注意把相关文件路径修改。
运行程序之后,会在控制台和你的log文件(以上为testsocket_log.log)输出这么一句话:
2006-03-05 00:02:26 [Log4jTest]-[DEBUG] a test. -(:15)
最后那个数字为源码的line number。有类名,源码位置,以上配置足够一般的开发了
———— 我想要实现的是追踪管理员具体行踪如:什么时候登陆, 查询,修改等等——————
正在积极摸索中!!! 先补充一下关于加载log4j配置文件的方法:
(一) 在程序中加载
在程序中使用PropertyConfiguration.configure("log4j.properties")加载配置文件
(二)在web.xml中加载 在web.xml中配置一个servlet
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>com.apache.jakarta.log4j.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>