美文网首页java基础学习
SpringBoot整合Log4j

SpringBoot整合Log4j

作者: 迷糊银儿 | 来源:发表于2018-05-30 15:48 被阅读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

    相关文章

      网友评论

        本文标题:SpringBoot整合Log4j

        本文链接:https://www.haomeiwen.com/subject/vvxxsftx.html