项目中有用到log4j 记录日志,在此记录下,废话不说,上代码。
log4j 与spring集成,在web.xml中配置如下:
<context-param> <param-name>webAppRootKey</param-name> <param-value>ahepc.root</param-value> </context-param> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <!-- log4j每隔60秒扫描 一下配置文件的变化 --> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>60000</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener </listener-class> </listener>
配置文件 log4j.properties
# # Log4J Settings for log4j 1.2.x (via jakarta-commons-logging) # # The five logging levels used by Log are (in order): # # 1. DEBUG (the least serious) # 2. INFO # 3. WARN # 4. ERROR # 5. FATAL (the most serious) # Set root logger level to WARN and append to stdout log4j.rootLogger=DEBUG,CONSOLE,A1 #log4j.rootLogger=DEBUG,CONSOLE #继承 log4j.addivity.org.apache=false #输出到控制台 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=DEBUG log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p [%c{1}] %m%n #log4j.logger.org.apache=INFO log4j.logger.java.sql.Connection=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG,CONSOLE log4j.logger.java.sql.ResultSet =DEBUG #按文件大小生成 log4j.appender.A1=org.apache.log4j.RollingFileAppender #log4j.appender.logfile=org.apache.log4j.FileAppender #log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender # 按日期生成配合DatePattern log4j.appender.A1.MaxFileSize=20MB log4j.appender.A1.MaxBackupIndex=20 log4j.appender.A1.File=${ahepc.root}/WEB-INF/logs/ahepc.log #log4j.appender.A1.DatePattern=.yyyy-MM-dd log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d %-5p [%c{1}] %m%n log4j.logger.com.sgcc.ahepc=INFO,DATABASE #数据库配置 #log4j.appender.DATABASE.Threshold=INFO log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.appender.DATABASE.BufferSize=1 #log4j.appender.DATABASE.URL=jdbc:oracle:thin:@localhost:1521:orcl log4j.appender.DATABASE.URL=jdbc:oracle:thin:@192.168.1.99:1521:orcl2 log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver log4j.appender.DATABASE.user=PMP log4j.appender.DATABASE.password=PMP_123* log4j.appender.DATABASE.sql=insert into PMP_COMMON_LOGGING (log_id,user_id,remote_addr,access_url,cls,method,log_level,log_msg,created_dt) values (sys_guid(),'%X{user_id}','%X{remote_addr}','%X{access_url}','%C','%M','%p','%m',sysdate) log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
配置文件说明下:log4j可以生成多种格式的log日志,这里配置了最常用的三种,分别是控制台,文件和数据库,
log4j 有5中输出级别。
文件的输出,常有安日期时间每天生成,也可以安装文件大小生成,还可以定义按文件大小生成时,可以生成多少个备份文件,很少牛逼。
log4j.logger.com.sgcc.ahepc=INFO,DATABASE
这句指定 只有在com.sgcc.ahepc包目录下才存入数据库,并且级别是info,只有这个包结构下的类书写了info级别的信息能存入数据
private static Logger logger = Logger.getLogger(LoginController.class); MDC.put("user_id", user.getObj_id()); MDC.put("remote_addr", request.getRemoteHost()); MDC.put("access_url", request.getRequestURL()); logger.info("登录成功");
上面的代码不完全,就是在类的头部声明log对象,在需要写log的地方输出对应级别的信息。
需要说明的是MDC类,这个类是log4j提供的类,和map的应用基本一致。存入键值对。在sql语句中可以用‘%X{user_id}%’获得。这里就用这样的方式获得登陆人登陆的时间地点等一系列信息
相关推荐
ARKit(iOS的增强现实):ARKit的物体检测与空间映射
基于android SmartRefreshLayout h
国内市场:功能化脂质市场现状研究分析与发展前景预测报告(2024版).docx
REHub 是一个多功能的 WordPress 主题,专为价格比较、联盟营销、多供应商商店和社区网站设计。以下是 REHub 的主要特点: 价格比较功能:内置强大的价格比较工具,用户可以轻松创建和管理产品比较表,帮助消费者找到最佳价格。 联盟营销支持:主题设计支持多种联盟营销方案,允许用户通过推广产品赚取佣金。 多供应商商店:集成了多供应商功能,用户可以轻松创建一个平台,让多个供应商在同一网站上销售商品。 灵活的页面构建:与 WPBakery 和 Elementor 兼容,用户可以通过拖放的方式轻松创建和定制页面,适应不同需求。 丰富的预建模板:提供多个预建网站模板,用户可以快速导入并进行个性化修改,以适应特定的商业模式。 响应式设计:确保网站在各种设备(手机、平板、桌面)上均能良好展示,优化用户体验。 SEO 优化:主题经过优化,有助于提高搜索引擎排名,吸引更多流量。 多种内容模块:包括产品展示、用户评论、评级系统等,帮助用户丰富网站内容。 持续更新与支持:定期更新主题,确保用户获得最新功能和安全性,同时提供专业的客户支持。 总的来说,REH
技术资料分享Z-Stackapi函数非常好的技术资料.zip
6.FreeRTOS之任务通知
Sawmill_Sales_CN.ppt
通用面试技巧-常见面试问题.zip
这是一款专为Java学习者设计的Eclipse集成开发环境(IDE),它提供了一个功能齐全的编程工具包,支持多种编程语言和平台。该资源包含了丰富的插件生态系统,如Maven、Spring等,帮助开发者提高生产力。通过这款IDE,用户可以轻松进行代码编辑、调试、项目管理等工作,并利用其强大的扩展性定制个性化的开发环境。此资源旨在为Java初学者及开发者提供一个便捷、高效的学习和开发平台,助力用户掌握Java编程技能。
Exchange2007_2010_log_exporting_cn.doc
智能化发展在汽车领域正带来深刻变革。特斯拉凭借其在智能化方面的持续领先,获得了长期的估值溢价。这一溢价背后蕴含着商业模式变革的巨大潜力,从两个不同视角测算特斯拉智能业务潜力,可见其在未来市场中的重要地位。特斯拉 FSD V12 的出现更是为智能驾驶带来重大飞跃,其入华也将产生广泛影响。高阶智能驾驶正走向端到端模式,数据驱动逐渐取代人海战术。这一转变有着明确的驱动力和必要性,传统智能驾驶方案与端到端方案的优劣对比也日益凸显。 在本土企业中,华为的 ADS3.0 率先实现车位到车位的功能,智驾方案上探下沉共同发力。蔚小理面向端到端调整智驾组织架构,将高阶智驾下沉至 15 万级车型,拓展了市场范围。长城汽车的智驾蓝山智驾版开启基于端到端模型的智驾迭代,不断提升产品竞争力。吉利汽车开启战略聚焦,极氪浩瀚智驾 2.0 全面搭载,为消费者带来更先进的驾驶体验。小米汽车资源雄厚,智驾发展速度较快,未来可期。
<项目介绍> - 本系统是以Django作为基础框架,采用MTV模式,数据库使用MongoDB、MySQL和Redis,主要基于用户的基本信息和使用操作记录等行为信息来开发用户标签,并使用Hadoop、Spark大数据组件进行分析和处理的推荐系统。管理系统使用的是Django自带的管理系统,并使用simpleui进行了美化 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
bc5fb42bb68039a5ac54292cb9babfaa.apk
儲能系統所適合應用場合.doc
2011-2023年上市公司企业新质生产力数据-李心茹版含原始数据+计算代码+计算结果-最新出炉.zip
2000-2023年全国各地级市专利数据-最新出炉.zip 全国地级市专利申请量和授权量面板数据,2000到2023年,包括300+个地级市的面板数据。 1985-2022年地级市数字经济专利数据 数据年份:1985-2022年 地级市-绿色专利申请和授权数据(1985-2022年) 数据名称:地级市-绿色专利申请和授权数据 数据范围:1985-2022年 数据范围:全国各城市
以即時日誌掃瞄功能發送郵件告警訊息.doc
基于SSM的毕业设计源码
history.json格式如下:(_id:数据库唯一主键,e_id:业务主键。title:"标题", content: "内容详情",picNo: "图片数量",picUrl: "图片数组", deleteFlag: 删除表示, 0未删除,1删除){ "_id" : ObjectId("67244802c98db1738e34abf1"), "e_id" : "20", "title" : "德国实施优生法", "content" : "\n 在87年前的今天,1934年1月1日(农历1933年11月16日),德国实施优生法。1934年1月1日,德国实施优生法,对遗传病患者可以强制施行绝育手术。","picNo" : "0","picUrl" : [],"deleteFlag" : 0} historyList.json 格式如下 {_id: "数据库唯一表示", date: "日期", content: 内容数组 [ { history} ] , delefeFlag: "删除表示" }
2G+16G主程序物料号11173101 AML-962H机芯升级步骤 本地升级: 1、将2G+xG_update.zip重命名update.zip,拷贝至U盘,插入电视USB,打开电视进入设置 2、选择本地升级,升级完毕后电视会重启,操作过程中切勿断电关机 升级完成后可以在系统设置——本机信息——查询软件版本 强制升级: 1、解压强制升级脚本recovery.img与factory_update_param.aml,加上update.zip三个文件拷贝至U盘根目录,插入电视USB 2、插拔下电源,按遥控器待机键后快速不停点按遥控器右键5-10下触发主板识别U盘软件进行升级 3、升级完毕后电视会重启,操作过程中切勿断电关机 串口升级 1、将三个升级软件拷贝至U盘根目录下,然后插入电视的USB接口 2、电视开启的时候按住电脑键盘Enter回车键出现txl_p392_v1#时,输入run update敲回车,系统识别U盘软件进行升级 如未成功先确认输入指令是否正常,reboot重新启动再试 若还是无法升级可能是硬件存储系统的EMMC模块损坏,请更换主板