springboot&日志&aop管理日志 定时任务、异步调用、读取配置文件

发布时间:   来源:CSDN  

整合log4j

1.导入jar包


(资料图片)

log4jlog4j1.2.17

2.创建log4j.properties

log4j.rootLogger=info,error,CONSOLE,DEBUGlog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender     log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout     log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n     log4j.logger.info=infolog4j.appender.info=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.info.layout=org.apache.log4j.PatternLayout     log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  log4j.appender.info.datePattern="."yyyy-MM-ddlog4j.appender.info.Threshold = info   log4j.appender.info.append=true   #log4j.appender.info.File=/home/admin/pms-api-services/logs/info/api_services_infolog4j.appender.info.File=/Users/dddd/Documents/testspace/pms-api-services/logs/info/api_services_infolog4j.logger.error=error  log4j.appender.error=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.error.layout=org.apache.log4j.PatternLayout     log4j.appender.error.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  log4j.appender.error.datePattern="."yyyy-MM-ddlog4j.appender.error.Threshold = error   log4j.appender.error.append=true   #log4j.appender.error.File=/home/admin/pms-api-services/logs/error/api_services_errorlog4j.appender.error.File=/Users/dddd/Documents/testspace/pms-api-services/logs/error/api_services_errorlog4j.logger.DEBUG=DEBUGlog4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.DEBUG.layout=org.apache.log4j.PatternLayout     log4j.appender.DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n  log4j.appender.DEBUG.datePattern="."yyyy-MM-ddlog4j.appender.DEBUG.Threshold = DEBUG   log4j.appender.DEBUG.append=true   #log4j.appender.DEBUG.File=/home/admin/pms-api-services/logs/debug/api_services_debuglog4j.appender.DEBUG.File=/Users/dddd/Documents/testspace/pms-api-services/logs/debug/api_services_debug

引用

private static Logger log = Logger.getLogger(UserController.class);

aop方式管理日志

1.导入依赖

org.springframework.bootspring-boot-starter-aop

2.创建配置类

package com.wwg.aop;import java.util.Enumeration;import javax.servlet.http.HttpServletRequest;import org.apache.log4j.Logger;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Component;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;@Aspect@Componentpublic class WebLogAspect {    private static Logger logger = Logger.getLogger(WebLogAspect.class);    @Pointcut("execution(public * com.wwg.controller..*.*(..))")    public void webLog() {    }    @Before("webLog()")    public void doBefore(JoinPoint joinPoint) throws Throwable {        // 接收到请求,记录请求内容        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();        HttpServletRequest request = attributes.getRequest();        logger.info("#####################请求开始####################");        // 记录下请求内容        logger.info("URL : " + request.getRequestURL().toString());        logger.info("HTTP_METHOD : " + request.getMethod());        logger.info("IP : " + request.getRemoteAddr());        Enumerationenu = request.getParameterNames();        while (enu.hasMoreElements()) {            String name = (String) enu.nextElement();            logger.info("name:{" + name + "},value:{" + request.getParameter(name) + "}");        }    }    @AfterReturning(returning = "ret", pointcut = "webLog()")    public void doAfterReturning(Object ret) throws Throwable {        // 处理完请求,返回内容        logger.info("RESPONSE : " + ret);        logger.info("#####################请求结束####################");    }}

3.成功

定时任务

package com.wwg.scheduled;/* * @author wwg * @create 2019-07-24 23:11 * 功能: */import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;@Componentpublic class ScheduledTasks {        @Scheduled(fixedRate = 1000)        public void test(){                //执行任务调度的方法                System.out.println("-----每秒执行一次-----");        }}

记得加上注解//启动任务调度@EnableScheduling

异步调用

1.在方法上加

@Async

2.记得加上注解//开启异步调用@EnableAsync

读取配置文件

@Value("配置文件内的名称,如:wwg")    String wwg;

修改端口号

server.port =8888server.servlet.contextPath=/wwg

使用yml方式进行配置

好处:简化配置

打包与发布

打包命令:mvn clean package -Dmaven.test.skip=true发布:在targar目录下打开cmd输入: java -jar 打包好的jar运行

相关文章Related

返回栏目>>