java基础学习

SpringBoot整合Log4j

2018-05-30  本文已影响89人  迷糊银儿

本次实现的主要是:SpringBoot整合Log4j ,比较简单。

step1: pom.xml文件中添加Log4j依赖

<dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-log4j</artifactId>
</dependency>

step2: 在src/main/resources 下新增日志的配置文件log4j.properties

# LOG4J配置
log4j.rootCategory=INFO, stdout, file

# 控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

# root日志输出到文件
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.file=/data/logs/springboot-log4j-all.log
log4j.appender.file.DatePattern='.'yyyy-MM-dd
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

# 按不同package进行输出
# com.micai包下的日志配置
log4j.category.com.micai=DEBUG, didifile

# com.micai下的日志输出
log4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.didifile.file=/data/logs/springboot-log4j-my.log
log4j.appender.didifile.DatePattern='.'yyyy-MM-dd
log4j.appender.didifile.layout=org.apache.log4j.PatternLayout
log4j.appender.didifile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n

# ERROR级别输出到特定的日志文件中
log4j.logger.error=errorfile
# error日志输出
log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorfile.file=/data/logs/springboot-log4j-error.log
log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd
log4j.appender.errorfile.Threshold = ERROR
log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

step3: 使用log4j打印日志

@Controller
public class FileUploadController {

   private Logger logger = org.slf4j.LoggerFactory.getLogger(this.getClass());
   @RequestMapping(value = "/file")
   public String file(){
       return "uploadFile";
   }



   // MultipartFile是自带的上传文件的工具类
   // @RequestParam("fileName") 中的参数名称同controller的参数名称保持一致
   @RequestMapping(value = "fileUpload")
   @ResponseBody
   public String fileUpload(@RequestParam("fileName") MultipartFile multipartFile){

       if(multipartFile.isEmpty())
           return "请先选择要上传的文件";

       String fileName=multipartFile.getOriginalFilename();
       logger.info("\n");
       logger.info("上传的文件名称为:"+fileName);

       int fileSize=(int)multipartFile.getSize();
       logger.info("上传文件的大小为:"+fileSize);


       String basePath=System.getProperty("user.dir");
       logger.info("项目的基础路径是:"+basePath);

       String destPath=basePath+"/src/main/resources/static/pics";
       logger.info("文件具体保存至:"+destPath);
       File destFile=new File(destPath+"/"+fileName);

       logger.info("对保存路径进行空校验");
       if(!destFile.getParentFile().exists()){
           destFile.getParentFile().mkdir();
       }
       try {
           logger.info("执行保存文件操作");
           multipartFile.transferTo(destFile);
           logger.info("保存文件成功");
           return "上传文件成功";
       }catch (IllegalStateException e){
           e.printStackTrace();
           return "上传文件失败";
       }catch (IOException e){
           e.printStackTrace();
           return "上传文件失败";
       }
   }
}

具体项目见https://gitee.com/neimenggudaxue/SPtest4

上一篇 下一篇

猜你喜欢

热点阅读