pom.xml 配置
<build>
<!-- 打包后文件名称:项目名-环境-版本 -->
<finalName>${project.artifactId}-${profileActive}-${project.version}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 开启过滤替换功能-->
<filtering>true</filtering>
<excludes>
<!-- 排除掉静态文件防止打包后文件损换-->
<exclude>static/**/*</exclude>
</excludes>
<includes>
<!-- 项目打包完成的包中只包含当前环境文件 -->
<include>application.yml</include>
<include>application-${profileActive}.yml</include>
<include>mybatis/mybatis-config.xml</include>
<include>ehcache/ehcache.xml</include>
<include>logback-spring.xml</include>
<include>templates/**/*</include>
<include>mapper/*Mapper.xml</include>
<include>/*Mapper.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<!-- 开启过滤替换功能-->
<filtering>false</filtering>
<includes>
<!-- 项目打包完成的包中只包含当前环境文件 -->
<include>static/**/*</include>
</includes>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>dev</id>
<properties>
<profileActive>dev</profileActive>
<version>${project.version}</version>
</properties>
<activation>
<!-- 默认情况下使用dev开发配置 如 打包时不包含 -p 参数-->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<!-- 打包命令package -P prod -->
<profile>
<id>prod</id>
<properties>
<profileActive>prod</profileActive>
<version>${project.version}</version>
</properties>
</profile>
</profiles>
application.yml
# 日志配置
logging:
level:
com.hime: info
org.springframework: error
config: classpath:logback-spring.xml
logback:
path: /zxjms/log
application-dev.yml
# 日志配置 有参数会覆盖application.yml的值
logback:
path: /codeLog/zxjms/log
application-prod.yml
# 日志配置 无参数会使用application.yml的值
logback.xml 更名为 logback-spring.xml
springProperty标签可以引用application.yml的内容
<springProperty scope=“context” name=“log.path” source=“logback.path”/>
name值为 logback.xml 使用同property 的name
source值 可以自定义修改与application.yml对应
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 -->
<springProperty scope="context" name="log.path" source="logback.path"/>
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{MM-dd HH:mm:ss.SSS}|%-5level|%thread --- |%c| %M:%L | %msg%n" />
<!-- 日志输出格式【控制台】 [%p][%c][%M][%L] -->
<property name="log.pattern.consoleLog" value="%d{HH:mm:ss.SSS}|%highlight(%-5level)|%thread --- |%cyan(%c)| %M:%boldGreen(%L) | %msg%n"/>
<!-- 开发时使用下面这个-->
<!--<property name="log.pattern.consoleLog" value="%n[%d{yyyy-MM-dd HH:mm:ss,sss}] [%thread] [%-5level] %replace(%replace(%caller{1}){'Caller\+0\s+', ' '}){'\s', ' '}%msg "/>-->
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern.consoleLog}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/%d{yyyy-MM-dd}.sys-info.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/%d{yyyy-MM-dd}.sys-error.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 系统日志访问日志输出 -->
<appender name="sys-log" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-log.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<fileNamePattern>${log.path}/%d{yyyy-MM-dd}.sys-log.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统SQL访问日志输出 -->
<appender name="sys-sql" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-sql.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<fileNamePattern>${log.path}/%d{yyyy-MM-dd}.sys-sql.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.hime" level="info" />
<logger name="ccb.webservice" level="info" />
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="error" />
<root level="info">
<appender-ref ref="console" />
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
<!--系统用户操作日志-->
<logger name="sys-sql" level="info">
<appender-ref ref="sys-sql"/>
</logger>
</configuration>
package.bat 打包文件
会将文件打包到当前文件夹
@echo off
echo.
echo war包 clean package 打包
echo.
%~d0
cd %~dp0
cd ..
call mvn clean package -P prod -Dmaven.test.skip=true
cd bin
copy /y ..\target\zxjms-prod-1.0.0.war zxjms.war
%~d0
cd %~dp0
call start .
pause
注1:打包后需要删除打包文件在运行,否则会以打包环境进行启动
注2:
pom.xml配置后idea右侧maven会出现如图配置(myjdk为其他地方配置的,可忽略),可通过调整勾选进行切换当前环境,切换环境后需重新Reimport项目,