SpringBoot log打印及输出方式是什么
发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,这篇文章主要介绍"SpringBoot log打印及输出方式是什么",在日常操作中,相信很多人在SpringBoot log打印及输出方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2024年11月20日SpringBoot log打印及输出方式是什么
这篇文章主要介绍"SpringBoot log打印及输出方式是什么",在日常操作中,相信很多人在SpringBoot log打印及输出方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"SpringBoot log打印及输出方式是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
SpringBoot log打印及输出
导入jar包
import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;
代码示例
private final Log log = LogFactory.getLog(AppController.class); //AppController.class为当前class文件,后台会输出这个class文件的log
String input = "%CN%";this.log.info(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家族的
org.slf4j slf4j-log4j12 1.7.25
创建 WebLogAcpect 类
@Aspect@Componentpublic class WebLogAcpect { private final static Logger orderLog = LoggerFactory.getLogger("order"); //定义切点 @Pointcut("execution(* com.qszhuang.backstage.service.OrderService.updateOrder*(..))") public void webLog() { } @Before("webLog()") public void doBefore(JoinPoint joinPoint) { // 接收到请求,记录请求内容 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); if (!StringUtils.isEmpty(attributes)) { HttpServletRequest request = attributes.getRequest(); // 记录下请求内容 orderLog.info("URL : " + request.getRequestURL().toString()); // orderLog.info("HTTP_METHOD : " + request.getMethod()); orderLog.info("IP : " + HttpUtil.getIp(request)); //获取操作人 if (!StringUtils.isEmpty(request.getCookies())) { String cookieValueByName = HttpUtil.getCookieValueByName(request.getCookies(), WebSecurityConfig.TOKEN_HEADER); MapstringClaimMap = TokenUtil.verifyToken(cookieValueByName); //方法名 // orderLog.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName()); orderLog.info("订单号 : {},操作人:{}", Arrays.toString(joinPoint.getArgs()), stringClaimMap.get("adminUsername").asString()); } }else { orderLog.info("整点退款"); } } @AfterReturning(returning = "ret", pointcut = "webLog()") public void doAfterReturning(Object ret) throws Throwable { // 处理完请求,返回内容 orderLog.info("操作返回值 : " + ret); }}
配置log4j
创建文件 log4j.properties 打印order 日志到指定目录 当然可以配置多个日志分别保存
log4j.rootLogger=INFO,stdoutlog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.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%nlog4j.logger.order=INFO,order_loglog4j.appender.order_log=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.order_log.Append=truelog4j.appender.order_log.DatePattern='.'yyyy-MM-ddlog4j.appender.order_log.File=../logs/order/order.loglog4j.appender.order_log.Threshold=INFOlog4j.appender.order_log.layout=org.apache.log4j.PatternLayoutlog4j.appender.order_log.layout.ConversionPattern=[%p] [%d{yyyy-MM-dd HH:mm:ss}] %m%n
到此,关于"SpringBoot log打印及输出方式是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
输出
日志
方法
方式
文件
学习
配置
内容
切面
功能
切点
后台
技术
更多
代理
帮助
实用
相似
接下来
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
无线网络安全技术大全
微薄利软件开发
淄博网络安全大赛报名
公司网络安全有所提升
linux 服务器 网卡
考研网络技术和数学的区别
服务器采购论证会专家意见
省网络安全信息化机构
互联网对科技创新提供平台
银行招网络安全运维人员吗
软件开发工资排行公司
积极打造重庆网络安全
网络安全班会记录简短
专业棋牌软件开发公司电话
服务器安全卡报警
搭建安全的 文件服务器
用什么数据库最安全
php软件开发岗位职责
windows和软件开发
昆山财务机器人rpa软件开发
战锤relic服务器不可用
数据库原理系统课后作业
大同铁路大数据库
html 数据库 图表
软件开发方面的论文结论
魔兽世界正式服重庆服务器
中国最好的互联网科技股
长亮科技互联网核心系统
网络技术自学基础
美国医疗器械不良事件数据库