struts1.3+spring2.5+hiberanate3.2
1 搭建一个ssh的web工程
2 在src下加入log4j.properties
#这一步很重要,在com.sSHLog4jDB.struts.action包下可以把日志记录到DB中,
#如果没有指定,则不可以插入到数据库中
log4j.logger.com.sSHLog4jDB.struts.action=INFO,db,logfile
log4j.rootCategory=INFO, stdout,logfile
####com.neam.struts.action为用户自定的包,表示在这个包下的操作可以记录到数据库中
log4j.logger.com.neam.struts.action=INFO,db
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - <%m>%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
#####日志也输出到下面的路径下SSHLog4jDB为你的工程名
log4j.appender.logfile.File=../webapps/SSHLog4jDB/test.log
log4j.appender.logfile.MaxFileSize=500KB
log4j.appender.logfile.MaxBackupIndex=10
log4j.appender.logfile.DatePattern=.yyyy-MM-dd
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - <%m>%n
########################
# JDBC Appender
#######################
#log4j.logger.business=INFO,db
log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.db=com.neam.commons.MyJDBCAppender
#log4j.appender.db=JDBCExtAppender
#log4j.appender.db.BufferSize=1
#log4j.appender.db.sqlname=log
log4j.appender.db.driver=net.sourceforge.jtds.jdbc.Driver
log4j.appender.db.URL=jdbc:jtds:SqlServer://localhost:1433;DatabaseName=feb
log4j.appender.db.user=sa
log4j.appender.db.password=febpay86837511
log4j.appender.db.sql=insert into WDZLOG values ('%X{userId}','%X{userName}','%C','%M','%d{yyyy-MM-dd HH:mm:ss}','%p','%m')
log4j.appender.db.layout=org.apache.log4j.PatternLayout
3 按照log4j.properties中连接的内容,在相应的数据库中建表
语句在user.sql、WDZLOG.sql中
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_user]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[t_user]
GO
CREATE TABLE [dbo].[t_user] (
[uid] [int] IDENTITY (1, 1) NOT NULL ,
[name] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[pwd] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[note] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[WDZLOG]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[WDZLOG]
GO
CREATE TABLE [dbo].[WDZLOG] (
[WDZLOGID] [int] IDENTITY (1, 1) NOT NULL ,
[LogName] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
[UserName] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
[Class] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
[Mothod] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
[CreateTime] [varchar] (255) COLLATE Chinese_PRC_CI_AS NULL ,
[LogLevel] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[MSG] [varchar] (555) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
4 在要用到的类中,要记录入数据库的
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
private Log logger = LogFactory.getLog(this.getClass());
logger.info("数据库插入成功");
或
logger.info(userName+"用户登陆成功");