java 日志存储方案_应用系统日志采集解决方案

该博客展示了一个Java日志存储方案的代码实现。定义了LogFilter类,实现了日志过滤功能。在doFilter方法中调用log方法记录请求信息,将请求的各种参数存入Map,转换为JSON对象后通过Web服务接口进行日志存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 packagecn.sinobest.asj.log;2 importjava.io.IOException;3 importjava.net.MalformedURLException;4 importjava.net.URL;5 importjava.util.Date;6 importjava.util.HashMap;7 importjava.util.Map;8 importjavax.servlet.Filter;9 importjavax.servlet.FilterChain;10 importjavax.servlet.FilterConfig;11 importjavax.servlet.ServletException;12 importjavax.servlet.ServletRequest;13 importjavax.servlet.ServletResponse;14 importjavax.servlet.http.HttpServletRequest;15 importorg.apache.commons.logging.Log;16 importorg.apache.commons.logging.LogFactory;17 importorg.json.JSONObject;18 importcn.sinobest.asj.log.wsimport.ISALog;19 importcn.sinobest.asj.log.wsimport.InvalidFormatExceptioin_Exception;20 importcn.sinobest.asj.log.wsimport.InvalidGradeException_Exception;21 importcn.sinobest.asj.log.wsimport.SALogImplService;22 public class LogFilter implementsFilter {23 static final Log log = LogFactory.getLog(LogFilter.class);24 static final String WSDL_LOCATION = "http://localhost:8080/logserv/log.action?wsdl";25 @Override26 public voiddestroy() {27 }28 @Override29 public voiddoFilter(ServletRequest request, ServletResponse response,30 FilterChain chain) throwsIOException, ServletException {31 try{32 log(request);33 } catch(InvalidFormatExceptioin_Exception e) {34 e.printStackTrace();35 } catch(InvalidGradeException_Exception e) {36 e.printStackTrace();37 } finally{38 chain.doFilter(request, response);39 }40 }41 private void log(ServletRequest request) throwsMalformedURLException,42 InvalidFormatExceptioin_Exception, InvalidGradeException_Exception {43 Map data = new HashMap();44 data.put("appid", "zfba");45 data.put("time", newDate());46 data.put("localAddr", request.getLocalAddr());47 data.put("localName", request.getLocalName());48 data.put("localPort", request.getLocalPort());49 data.put("remoteAddr", request.getRemoteAddr());50 data.put("remoteHost", request.getRemoteHost());51 data.put("remotePort", request.getRemotePort());52 //data.put("serverName", request.getServerName());53 //data.put("serverPort", request.getServerPort());

54 HttpServletRequest hrequest =(HttpServletRequest) request;55 data.put("pathInfo", hrequest.getPathInfo());56 data.put("pathTranslated", hrequest.getPathTranslated());57 data.put("remoteUser", hrequest.getRemoteUser());58 data.put("requestURI", hrequest.getRequestURI());59 data.put("requestURL", hrequest.getRequestURL());60 data.put("servletPath", hrequest.getServletPath());61 JSONObject cont = newJSONObject(data);62 URL url = newURL(WSDL_LOCATION);63 SALogImplService ss = newSALogImplService(url);64 ISALog service =ss.getSALogImplPort();65 service.log("info", cont.toString());66 }67 @Override68 public void init(FilterConfig arg0) throwsServletException {69 }70 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值