SpringBoot log打印及输出方式_第1页
SpringBoot log打印及输出方式_第2页
SpringBoot log打印及输出方式_第3页
SpringBoot log打印及输出方式_第4页
SpringBoot log打印及输出方式_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论