千家信息网

SpringBoot log打印及输出方式是什么

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"SpringBoot log打印及输出方式是什么",在日常操作中,相信很多人在SpringBoot log打印及输出方式是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
千家信息网最后更新 2026年11月01日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);                Map stringClaimMap = 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安全错误 数据库的锁怎样保障安全 高科技互联网 宜安科技 互联网金融 亿账通互联网科技 互联网 新科技 卓越科技互联网 招聘 盛创互联网科技有限公司 青海省互联网新科技 开启互联网科技时代小说 互联网科技公司需要的职位 团飞科技与伯堂互联网服务平台 智腾互联网科技有限公司 互联网科技公司实习生 赶超互联网科技 微信多开 国大互联网教育科技有限公司工作 本届互联网博览会上的黑科技 梅州GM互联网络科技有限公司 互联网科技资金流入 下一代互联网重大应用科技园 互联网科技手机排行榜 东风日产互联网科技公司叫什么 互联网科技工作委员会副主任毛军 上海致骋互联网科技 齐家互联网科技有限公司 广西拼得多互联网科技有限公司 互联网科技公司营业执照怎么办理 无锡工业互联网科技有限公司 互联网科技股为什么大涨 互联网风格科技公司名称 互联网科技创业计划的风险分析 颐高云石互联网科技
0