十一、springboot 配置log4j2以及打包成zip文件

前言

其实我们前面已经配置了日志,但是最近总感觉日志日志格式看的不舒服,并且每次打包都是一个jar 文件,lib都包含在jar 中,每次做很小的修改都需要重新替换jar文件,jar文件会比较大,传输起来比较慢。所以做一些改进。

配置log4j2

好了,废话不多说了,先来在Springboot中配置log4j2吧。

pom.xml

springboot 项目默认的是使用logback 的,所以我们想要使用log4j ,需要将原来的logback 框架屏蔽掉,再引入log4j.
首先我们在pom.xml 文件中加入

 
            org.springframework.boot
            spring-boot-starter-web
            
                
                    org.springframework.boot
                    spring-boot-starter-logging
                
            
        

        
            org.springframework.boot
            spring-boot-starter-log4j2
        

编写log4j2.xml


    
        ${sys:user.dir}/logs
        zlflovemm_log
        zlflovemm__error
    
    
        
            
            
        

        
            
            
            
                
                
            
            
                
                    
                    
                
            
        

        
            
            
                
                
            
            
                
                    
                    
                
            
        


        
            
            
        
    

    

        
            
            
            
        
    

上面配置的是生成日志的格式,大家可以自行修改。以及配置了单个日志文件最大为200M ,只保留最近30天的文件。

application.properties 配置

#日志配置
logging.config=classpath:log4j2.xml
debug=false

实现上面这三步,就轻松的在项目中使用log4j日志啦。

打包外置配置文件

上面配置的日志,先不测试了,等这个打包的配置也配置好了,再来一起测试。

如果我们直接使用自带的mvn package 的话,会将我们依赖的jar 包已经配置文件统统打包成可运行的jar 文件。这样虽然方便,但是这样的话每次都需要重新打包,并且传输起来比较麻烦,所以我们就需要将lib 和配置文件从jar 文件中分离。这样项目修改了,只需要替换一下比较小的部分就可以了。

pom.xml 修改

打开我们的pom.xml 文件,最下面我们的中我们加入如下代码。因为我们的项目之前加入了打包成docker 镜像,所以整个的都贴出来,不需要打包成docker的可以去掉。

 
        
        
            
                src/main/resources
                ${project.build.directory}${file.separator}classes
            
            
                src/main/java
                
                    
                    **/*.xml
                
                true
            
        

        
            
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.8
                    1.8
                    UTF-8
                    true
                
            
            
            
                org.apache.maven.plugins
                maven-jar-plugin
                
                    
                        
                            true
                            lib
                            
                            com.quellan.zlflovemm.ZlflovemmApplication
                        
                        
                            ./
                        
                    
                    
                        config/**
                    
                
            
            
                maven-assembly-plugin
                
                    
                    false
                    
                        
                        src/main/build/package.xml
                    
                
                
                    
                        make-assembly
                        package
                        
                            single
                        
                    
                
            

            
            
                com.spotify
                docker-maven-plugin
                1.0.0
                
                
                    
                        build-image
                        
                        package
                        
                            build
                        
                    
                
                
                    
                    ${docker.image.prefix}/${project.artifactId}:${project.version}
                    
                    
                        ${project.version}
                    
                    
                    src/main/docker
                    
                    http://127.0.0.1:2375
                    
                        
                            /
                            
                            ${project.build.directory}
                            
                            ${project.build.finalName}.jar
                        
                    
                
            
        
    

需要注意的是,如下两个地方,第一个di地方需要需改成我们自己项目的启动类。第二个地方需要配置我们的package.xml 文件路径。内容我们待会讲。

package.xml

我们在pom.xml 中配置好了后,我们在src/main 目录下创建一个build 包,早build 目录下创建package.xml 文件。路径就是上面配置的,大家可以按照自己的喜好来。
内容如下:

  
  
    package  
      
        zip
      
    
    false  
      
        
            bin
            ${file.separator}  
          
          
            src/main/resources  
            ${file.separator}  
            
                static/**
                templates/**
            
          
          
            ${project.build.directory}
            ${file.separator}
              
                *.jar  
              
          
      
      
          
    true
            lib  
            runtime  
            
              
                
                ${groupId}:${artifactId}
              
          
      

测试

好啦,上面的已经配置好啦,我们来测试一下。
直接mvn package成功后会生成如下文件,包含jar 和zip 文件。


zip 文件解压后,就是我们第一次部署的文件,后面修改代码只用替换jar文件就可以了。

我们生成的日志文件

番外

好了,就说这么多啦
代码上传到github:
https://github.com/QuellanAn/...

后续加油♡

欢迎大家关注个人公众号 "程序员爱酸奶"

分享各种学习资料,包含java,linux,大数据等。资料包含视频文档以及源码,同时分享本人及投递的优质技术博文。

如果大家喜欢记得关注和分享哟❤

你可能感兴趣的:(spring)