下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第SpringBootlog打印及输出方式importmons.logging.Log;
importmons.logging.LogFactory;
privatefinalLoglog=LogFactory.getLog(AppController.class);
//AppController.class为当前class文件,后台会输出这个class文件的log
Stringinput=%CN%
(input);
后台输出日志如下:
日志输出配置
在application.yml文件中添加配置
logging:
path:D:\spring-boot-log//自定义输出日志的地址
springboot切面技术打印log日志
项目的部分功能需要新增加日志的操作记录,想了一圈还是使用切面技术比较方便解决。相当于代理,感觉比代理更牛逼。
说一下关键词自己理解的。
@Aspect:把当前类搞成一个切面类,提供容器读取
@Pointcut:定义切点,扫描那个包下面的那个类,具体到那个方法。
@Around:环绕增强,相当于MethodInterceptor
@AfterReturning:后置增强,相当于AfterReturningAdvice,方法正常退出时执行
@Before:标识一个前置增强方法,相当于BeforeAdvice的功能,相似功能的还有
@AfterThrowing:异常抛出增强,相当于ThrowsAdvice
@After:final增强,不管是抛出异常或者正常退出都会执行
mvaen准备还有spring家族的
dependency
groupIdorg.slf4j/groupId
artifactIdslf4j-log4j12/artifactId
version1.7.25/version
/dependency
创建WebLogAcpect类
@Aspect
@Component
publicclassWebLogAcpect{
privatefinalstaticLoggerorderLog=LoggerFactory.getLogger(order
//定义切点
@Pointcut(execution(*com.qszhuang.backstage.service.OrderService.updateOrder*(..)))
publicvoidwebLog(){
@Before(webLog())
publicvoiddoBefore(JoinPointjoinPoint){
//接收到请求,记录请求内容
ServletRequestAttributesattributes=(ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
if(!StringUtils.isEmpty(attributes)){
HttpServletRequestrequest=attributes.getRequest();
//记录下请求内容
orderL(URL:+request.getRequestURL().toString());
//orderL(HTTP_METHOD:+request.getMethod());
orderL(IP:+HttpUtil.getIp(request));
//获取操作人
if(!StringUtils.isEmpty(request.getCookies())){
StringcookieValueByName=HttpUtil.getCookieValueByName(request.getCookies(),WebSecurityConfig.TOKEN_HEADER);
MapString,ClaimstringClaimMap=TokenUtil.verifyToken(cookieValueByName);
//方法名
//orderL(CLASS_METHOD:+joinPoint.getSignature().getDeclaringTypeName()+.+joinPoint.getSignature().getName());
orderL(订单号:{},操作人:{},Arrays.toString(joinPoint.getArgs()),stringClaimMap.get(adminUsername).asString());
}else{
orderL(整点退款
@AfterReturning(returning=ret,pointcut=webLog())
publicvoiddoAfterReturning(Objectret)throwsThrowable{
//处理完请求,返回内容
orderL(操作返回值:+ret);
配置log4j
创建文件perties打印order日志到指定目录当然可以配置多个日志分别保存
log4j.rootLogger=INFO,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE}%5p%c{1}:%L-%m%n
#log4j.appender.timer_log=org.apache.log4j.DailyRollingFileAppender
#log4j.appender.timer_log.Append=true
#log4j.appender.timer_log.DatePattern=.yyyy-MM-dd
#log4j.appender.timer_log.File=E:/logs/timer/timer.log
#log4j.appender.timer_log.Threshold=INFO
#log4j.appender.timer_log.layout=org.apache.log4j.PatternLayout
#log4j.appender.timer_log.layout.ConversionPattern=%d-%c[%t]%-5p%c%x%l-%m%n
log4j.logger.order=INFO,order_log
log4j.appender.order_log=org.apache.log4j.DailyRollingFileAppender
log4j.appender.order_log.Append=true
log4j.appender.order_log.DatePattern=.yyyy-MM-dd
log4j.appender.order_log.File=../logs/order/order.log
log4j.appender.order_log.Threshold=INFO
log4j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026汽车制造市场调研及发展技巧与投资回报预测报告
- 2026中国运动安全预警系统人工智能技术融合应用前景报告
- 2026中国涡流泵市场消费需求变化与用户行为调研报告
- 2026汽车零部件行业竞争格局调研与未来发展展望分析研究报告
- 新版教科版六年级上册科学(课件)第4单元 5机械钟摆
- 2026叶黄素酯原料产地资源分布与采购策略研究报告
- 2026中国消费品零售市场发展趋势及商业模式创新与投资前景预测研究报告
- 2026人工智能技术发展市场潜力分析探讨战略规划投资价值评估
- 2026能源监控设备行业市场应用分析评估发展策略研究
- 工业机器视觉技术与应用 课件 第五章-工业机器视觉目标检测与跟踪
- 留疆战士考核试题及答案
- 2026年企业财务管理与审计方案
- 2026上海市就业援藏事业单位专项招聘9人笔试题库及参考答案详解(满分必刷)
- 2026年云南省昆明市重点学校初一入学数学分班考试试题及答案
- 医院门诊检验标本采集工作手册
- CJT 340-2016 绿化种植土壤
- 高标准农田改造提升建设项目投标方案(技术标)
- 内架承包的协议书范本
- 光学成像技术1-课件
- 小学六年级数学计算题100道(含答案)
- 实验诊断 第五章 常用肾脏功能实验室检测(2学时)
评论
0/150
提交评论