log4j写入日志到SQL Server数据库

时间:2022-11-05 21:54:38
---这是我数据库中新建的日志表(记录用户的相关操作)
CREATE TABLE [boxserver].[dbo].[LogInformation] (  
    [WDZLOGID] [int] IDENTITY (1, 1) NOT NULL ,--用户ID  
    [UserName] [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,--日志信息
    [user_loginip] [varchar](50)COLLATE Chinese_PRC_CI_AS NULL--IP地址
) ON [PRIMARY]  
GO 
但我写好log4j配置文件以及过滤器后不知怎么写了
我现在就是要把这些日志信息包括用户ID、用户姓名、操作类、路径、方法、操作时间、日志信息等写入数据库
各位大神有没有实例啊或者自己写过的例子,求指导!!!

11 个解决方案

#2


这个我看过啊,你有没有写过相应的实例啊

#3


有没有实际写过的代码啊?

#4


引用 3 楼 u014036036 的回复:
有没有实际写过的代码啊?

那你自己尝试了吗?

#5


我Filter里面要怎么去写,就是判断session是否为空还是?

#6


引用 5 楼 u014036036 的回复:
我Filter里面要怎么去写,就是判断session是否为空还是?


判断session的用户是否存在

#7


我还没有尝试,思路不是很清晰

#8


 public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        //System.out.println("进入过滤器");
        HttpServletRequest req=(HttpServletRequest)request;  
        HttpSession session= req.getSession();  
        if (session==null){  
            MDC.put("userId",DEFAULT_USERID);
            MDC.put("userType",DEFAULT_USERID);  
        }  
        else{  
            //StuInfor stuInfor =(StuInfor)session.getAttribute("admin"); 
            //用户的id
            Integer userId = (Integer)session.getAttribute("userId");
            //用户的类型
            String adminType = (String)session.getAttribute("adminType");
            if (userId == null&& adminType == null){  
                MDC.put("userId",DEFAULT_USERID);  
                MDC.put("userType",DEFAULT_USERID);  
            }  
            else  
            {  
                System.out.println("用户id"+userId+ "类型"+ adminType);
                MDC.put("userId", userId);  
                MDC.put("userType", adminType);  
            }  
        }  
       chain.doFilter(request, response);  
    }
我写了一个登录验证的Servlet,我的过滤器里面该怎么写,就必须先经过过滤器

#9


只判断用户名是否存在就可以吗?

#10


引用 9 楼 u014036036 的回复:
只判断用户名是否存在就可以吗?

1、session不能为空
2、session中的用户不能为空

#11


非常感谢,谢谢

#1


#2


这个我看过啊,你有没有写过相应的实例啊

#3


有没有实际写过的代码啊?

#4


引用 3 楼 u014036036 的回复:
有没有实际写过的代码啊?

那你自己尝试了吗?

#5


我Filter里面要怎么去写,就是判断session是否为空还是?

#6


引用 5 楼 u014036036 的回复:
我Filter里面要怎么去写,就是判断session是否为空还是?


判断session的用户是否存在

#7


我还没有尝试,思路不是很清晰

#8


 public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        //System.out.println("进入过滤器");
        HttpServletRequest req=(HttpServletRequest)request;  
        HttpSession session= req.getSession();  
        if (session==null){  
            MDC.put("userId",DEFAULT_USERID);
            MDC.put("userType",DEFAULT_USERID);  
        }  
        else{  
            //StuInfor stuInfor =(StuInfor)session.getAttribute("admin"); 
            //用户的id
            Integer userId = (Integer)session.getAttribute("userId");
            //用户的类型
            String adminType = (String)session.getAttribute("adminType");
            if (userId == null&& adminType == null){  
                MDC.put("userId",DEFAULT_USERID);  
                MDC.put("userType",DEFAULT_USERID);  
            }  
            else  
            {  
                System.out.println("用户id"+userId+ "类型"+ adminType);
                MDC.put("userId", userId);  
                MDC.put("userType", adminType);  
            }  
        }  
       chain.doFilter(request, response);  
    }
我写了一个登录验证的Servlet,我的过滤器里面该怎么写,就必须先经过过滤器

#9


只判断用户名是否存在就可以吗?

#10


引用 9 楼 u014036036 的回复:
只判断用户名是否存在就可以吗?

1、session不能为空
2、session中的用户不能为空

#11


非常感谢,谢谢