提交 dc5c7318 编写于 作者: ibizdev's avatar ibizdev

ibizdev提交

上级 d506219a
...@@ -40,14 +40,14 @@ ...@@ -40,14 +40,14 @@
mvn install mvn install
cd .. cd ..
mvn install mvn install
cd im-app/im-app-web cd im-boot
mvn clean package -Pprod mvn clean package
echo 'echo "$para1"' > apppasswd.sh echo 'echo "$para1"' > apppasswd.sh
chmod -R 777 * chmod -R 777 *
setsid env SSH_ASKPASS='./apppasswd.sh' DISPLAY='none:0' ssh root@172.16.102.61 "mkdir -p /ibiz/nodes/node1/2C5840FD-07EF-4719-9D83-6E960583E30D" setsid env SSH_ASKPASS='./apppasswd.sh' DISPLAY='none:0' ssh root@172.16.102.61 "mkdir -p /ibiz/nodes/node1/DEEE206E-53BF-4A76-BBB4-0DBBAFEE9439"
setsid env SSH_ASKPASS='./apppasswd.sh' DISPLAY='none:0' scp -r ./target/im-app-web.jar root@172.16.102.61:/ibiz/nodes/node1/2C5840FD-07EF-4719-9D83-6E960583E30D setsid env SSH_ASKPASS='./apppasswd.sh' DISPLAY='none:0' scp -r ./target/im.jar root@172.16.102.61:/ibiz/nodes/node1/DEEE206E-53BF-4A76-BBB4-0DBBAFEE9439
setsid env SSH_ASKPASS='./apppasswd.sh' DISPLAY='none:0' ssh root@172.16.102.61 "ps -ef | grep '/ibiz/nodes/node1/2C5840FD-07EF-4719-9D83-6E960583E30D'| tr -s ' '|cut -d' ' -f2,8,9 | grep -v grep | grep 'jar' | cut -d' ' -f1|xargs --no-run-if-empty kill -9" setsid env SSH_ASKPASS='./apppasswd.sh' DISPLAY='none:0' ssh root@172.16.102.61 "ps -ef | grep '/ibiz/nodes/node1/DEEE206E-53BF-4A76-BBB4-0DBBAFEE9439'| tr -s ' '|cut -d' ' -f2,8,9 | grep -v grep | grep 'jar' | cut -d' ' -f1|xargs --no-run-if-empty kill -9"
setsid env SSH_ASKPASS='./apppasswd.sh' DISPLAY='none:0' ssh root@172.16.102.61 "source /etc/profile;source ~/.bash_profile; nohup java -jar -Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=128m /ibiz/nodes/node1/2C5840FD-07EF-4719-9D83-6E960583E30D/im-app-web.jar >>/ibiz/nodes/node1/2C5840FD-07EF-4719-9D83-6E960583E30D/im_appim 业务应用-`date --date='0 days ago' +%Y-%m-%d`.log 2>&1 &" setsid env SSH_ASKPASS='./apppasswd.sh' DISPLAY='none:0' ssh root@172.16.102.61 "source /etc/profile;source ~/.bash_profile; nohup java -jar -Xms512m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=128m /ibiz/nodes/node1/DEEE206E-53BF-4A76-BBB4-0DBBAFEE9439/im.jar >>/ibiz/nodes/node1/DEEE206E-53BF-4A76-BBB4-0DBBAFEE9439/im_apiim 服务-`date --date='0 days ago' +%Y-%m-%d`.log 2>&1 &"
</command> </command>
</hudson.tasks.Shell> </hudson.tasks.Shell>
</builders> </builders>
......
...@@ -239,9 +239,21 @@ public class WFASService { ...@@ -239,9 +239,21 @@ public class WFASService {
// 登录用户信息 // 登录用户信息
LoginUser loginUser = SpringContextHolder.getCurLoginUser(); LoginUser loginUser = SpringContextHolder.getCurLoginUser();
if (loginUser == null) { if (loginUser == null) {
JSONObject jsonLoginUser = data.getJSONObject("loginuser");
if (jsonLoginUser == null) {
data.put("srfmsg", "用户未登录"); data.put("srfmsg", "用户未登录");
return false; return false;
} }
// 组织信息存储
wfinstance.setOriginpersonid(jsonLoginUser.getString("personId"));
wfinstance.setOriginpersonname(jsonLoginUser.getString("orgUserName"));
wfinstance.setOriginorgid(jsonLoginUser.getString("orgId"));
wfinstance.setOriginorgname(jsonLoginUser.getString("orgName"));
wfinstance.setOriginorgdeptid(jsonLoginUser.getString("orgDeptId"));
wfinstance.setOriginorgdeptname(jsonLoginUser.getString("orgDeptName"));
loginuserStr = jsonLoginUser.getString("personId");
} else {
// 组织信息存储 // 组织信息存储
wfinstance.setOriginpersonid(loginUser.getPersonId()); wfinstance.setOriginpersonid(loginUser.getPersonId());
wfinstance.setOriginpersonname(loginUser.getOrgUserName()); wfinstance.setOriginpersonname(loginUser.getOrgUserName());
...@@ -252,6 +264,8 @@ public class WFASService { ...@@ -252,6 +264,8 @@ public class WFASService {
loginuserStr = loginUser.getPersonId(); loginuserStr = loginUser.getPersonId();
} }
}
wfinstance = uniWFFeignClient.createWFInstance(wfinstance); wfinstance = uniWFFeignClient.createWFInstance(wfinstance);
wfas.setWfinstanceid(wfinstance.getWfinstanceid()); wfas.setWfinstanceid(wfinstance.getWfinstanceid());
client.update(wfas_id, wfas); client.update(wfas_id, wfas);
......
...@@ -239,9 +239,21 @@ public class WFBCService { ...@@ -239,9 +239,21 @@ public class WFBCService {
// 登录用户信息 // 登录用户信息
LoginUser loginUser = SpringContextHolder.getCurLoginUser(); LoginUser loginUser = SpringContextHolder.getCurLoginUser();
if (loginUser == null) { if (loginUser == null) {
JSONObject jsonLoginUser = data.getJSONObject("loginuser");
if (jsonLoginUser == null) {
data.put("srfmsg", "用户未登录"); data.put("srfmsg", "用户未登录");
return false; return false;
} }
// 组织信息存储
wfinstance.setOriginpersonid(jsonLoginUser.getString("personId"));
wfinstance.setOriginpersonname(jsonLoginUser.getString("orgUserName"));
wfinstance.setOriginorgid(jsonLoginUser.getString("orgId"));
wfinstance.setOriginorgname(jsonLoginUser.getString("orgName"));
wfinstance.setOriginorgdeptid(jsonLoginUser.getString("orgDeptId"));
wfinstance.setOriginorgdeptname(jsonLoginUser.getString("orgDeptName"));
loginuserStr = jsonLoginUser.getString("personId");
} else {
// 组织信息存储 // 组织信息存储
wfinstance.setOriginpersonid(loginUser.getPersonId()); wfinstance.setOriginpersonid(loginUser.getPersonId());
wfinstance.setOriginpersonname(loginUser.getOrgUserName()); wfinstance.setOriginpersonname(loginUser.getOrgUserName());
...@@ -252,6 +264,8 @@ public class WFBCService { ...@@ -252,6 +264,8 @@ public class WFBCService {
loginuserStr = loginUser.getPersonId(); loginuserStr = loginUser.getPersonId();
} }
}
wfinstance = uniWFFeignClient.createWFInstance(wfinstance); wfinstance = uniWFFeignClient.createWFInstance(wfinstance);
wfbc.setWfinstanceid(wfinstance.getWfinstanceid()); wfbc.setWfinstanceid(wfinstance.getWfinstanceid());
client.update(wfbc_id, wfbc); client.update(wfbc_id, wfbc);
......
...@@ -239,9 +239,21 @@ public class WFBMService { ...@@ -239,9 +239,21 @@ public class WFBMService {
// 登录用户信息 // 登录用户信息
LoginUser loginUser = SpringContextHolder.getCurLoginUser(); LoginUser loginUser = SpringContextHolder.getCurLoginUser();
if (loginUser == null) { if (loginUser == null) {
JSONObject jsonLoginUser = data.getJSONObject("loginuser");
if (jsonLoginUser == null) {
data.put("srfmsg", "用户未登录"); data.put("srfmsg", "用户未登录");
return false; return false;
} }
// 组织信息存储
wfinstance.setOriginpersonid(jsonLoginUser.getString("personId"));
wfinstance.setOriginpersonname(jsonLoginUser.getString("orgUserName"));
wfinstance.setOriginorgid(jsonLoginUser.getString("orgId"));
wfinstance.setOriginorgname(jsonLoginUser.getString("orgName"));
wfinstance.setOriginorgdeptid(jsonLoginUser.getString("orgDeptId"));
wfinstance.setOriginorgdeptname(jsonLoginUser.getString("orgDeptName"));
loginuserStr = jsonLoginUser.getString("personId");
} else {
// 组织信息存储 // 组织信息存储
wfinstance.setOriginpersonid(loginUser.getPersonId()); wfinstance.setOriginpersonid(loginUser.getPersonId());
wfinstance.setOriginpersonname(loginUser.getOrgUserName()); wfinstance.setOriginpersonname(loginUser.getOrgUserName());
...@@ -252,6 +264,8 @@ public class WFBMService { ...@@ -252,6 +264,8 @@ public class WFBMService {
loginuserStr = loginUser.getPersonId(); loginuserStr = loginUser.getPersonId();
} }
}
wfinstance = uniWFFeignClient.createWFInstance(wfinstance); wfinstance = uniWFFeignClient.createWFInstance(wfinstance);
wfbm.setWfinstanceid(wfinstance.getWfinstanceid()); wfbm.setWfinstanceid(wfinstance.getWfinstanceid());
client.update(wfbm_id, wfbm); client.update(wfbm_id, wfbm);
......
...@@ -239,9 +239,21 @@ public class WFIMService { ...@@ -239,9 +239,21 @@ public class WFIMService {
// 登录用户信息 // 登录用户信息
LoginUser loginUser = SpringContextHolder.getCurLoginUser(); LoginUser loginUser = SpringContextHolder.getCurLoginUser();
if (loginUser == null) { if (loginUser == null) {
JSONObject jsonLoginUser = data.getJSONObject("loginuser");
if (jsonLoginUser == null) {
data.put("srfmsg", "用户未登录"); data.put("srfmsg", "用户未登录");
return false; return false;
} }
// 组织信息存储
wfinstance.setOriginpersonid(jsonLoginUser.getString("personId"));
wfinstance.setOriginpersonname(jsonLoginUser.getString("orgUserName"));
wfinstance.setOriginorgid(jsonLoginUser.getString("orgId"));
wfinstance.setOriginorgname(jsonLoginUser.getString("orgName"));
wfinstance.setOriginorgdeptid(jsonLoginUser.getString("orgDeptId"));
wfinstance.setOriginorgdeptname(jsonLoginUser.getString("orgDeptName"));
loginuserStr = jsonLoginUser.getString("personId");
} else {
// 组织信息存储 // 组织信息存储
wfinstance.setOriginpersonid(loginUser.getPersonId()); wfinstance.setOriginpersonid(loginUser.getPersonId());
wfinstance.setOriginpersonname(loginUser.getOrgUserName()); wfinstance.setOriginpersonname(loginUser.getOrgUserName());
...@@ -252,6 +264,8 @@ public class WFIMService { ...@@ -252,6 +264,8 @@ public class WFIMService {
loginuserStr = loginUser.getPersonId(); loginuserStr = loginUser.getPersonId();
} }
}
wfinstance = uniWFFeignClient.createWFInstance(wfinstance); wfinstance = uniWFFeignClient.createWFInstance(wfinstance);
wfim.setWfinstanceid(wfinstance.getWfinstanceid()); wfim.setWfinstanceid(wfinstance.getWfinstanceid());
client.update(wfim_id, wfim); client.update(wfim_id, wfim);
......
server: server:
devmode: false devmode: true
port: 8202 port: 8080
servlet: servlet:
session: session:
cookie: cookie:
...@@ -17,11 +17,11 @@ spring: ...@@ -17,11 +17,11 @@ spring:
security: security:
cas: cas:
server: server:
host: https://passport.ibizlab.cn host: http://passportcs.ibizlab.cn
login: ${security.cas.server.host}/login login: ${security.cas.server.host}/login
logout: ${security.cas.server.host}/logout logout: ${security.cas.server.host}/logout
service: service:
host: http://172.16.102.61:${server.port} host: http://localhost:${server.port}
login: /login/cas login: /login/cas
logout: /logout logout: /logout
...@@ -36,7 +36,7 @@ logging: ...@@ -36,7 +36,7 @@ logging:
app: app:
web: web:
url: http://172.16.102.61:${server.port} url: http://localhost:${server.port}
wfstarturl: /#/%s/null/editview wfstarturl: /#/%s/null/editview
# wfviewurl: /#/dewfdataredirectview # wfviewurl: /#/dewfdataredirectview
wfviewurl: /#/appwfdataredirectview wfviewurl: /#/appwfdataredirectview
......
server: server:
devmode: false devmode: true
port: 8202 port: 8080
servlet: servlet:
session: session:
cookie: cookie:
...@@ -17,11 +17,11 @@ spring: ...@@ -17,11 +17,11 @@ spring:
security: security:
cas: cas:
server: server:
host: https://passport.ibizlab.cn host: http://passportcs.ibizlab.cn
login: ${security.cas.server.host}/login login: ${security.cas.server.host}/login
logout: ${security.cas.server.host}/logout logout: ${security.cas.server.host}/logout
service: service:
host: http://172.16.102.61:${server.port} host: http://localhost:${server.port}
login: /login/cas login: /login/cas
logout: /logout logout: /logout
...@@ -36,7 +36,7 @@ logging: ...@@ -36,7 +36,7 @@ logging:
app: app:
web: web:
url: http://172.16.102.61:${server.port} url: http://localhost:${server.port}
wfstarturl: /#/%s/null/editview wfstarturl: /#/%s/null/editview
# wfviewurl: /#/dewfdataredirectview # wfviewurl: /#/dewfdataredirectview
wfviewurl: /#/appwfdataredirectview wfviewurl: /#/appwfdataredirectview
......
server: server:
port: 8080 port: 8101
spring: spring:
application: application:
......
package com.ibiz.mybatis.config; package com.ibiz.mybatis.config;
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties; import com.baomidou.mybatisplus.autoconfigure.MybatisPlusProperties;
import com.ibiz.util.helper.UniqueNameGenerator;
import com.baomidou.mybatisplus.core.injector.ISqlInjector; import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector; import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
...@@ -15,7 +17,7 @@ import java.util.Properties; ...@@ -15,7 +17,7 @@ import java.util.Properties;
* mybatis全局配置类 * mybatis全局配置类
*/ */
@Configuration @Configuration
@MapperScan("com.ibiz.mybatis.*.mapper") @MapperScan(value="com.ibiz.mybatis.*.mapper",nameGenerator = UniqueNameGenerator.class)
public class MybatisConfiguration { public class MybatisConfiguration {
/** /**
......
...@@ -26,6 +26,10 @@ import static com.ibiz.util.log.LogMessage.*; ...@@ -26,6 +26,10 @@ import static com.ibiz.util.log.LogMessage.*;
*/ */
@Aspect @Aspect
@Component @Component
/**
* 不支持private方法切入。
*/
@Deprecated
public class LogAspect { public class LogAspect {
@Pointcut("execution(public * com.ibiz..*.*(..))") @Pointcut("execution(public * com.ibiz..*.*(..))")
private void pointCut() { private void pointCut() {
......
package com.ibiz.util.log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static com.ibiz.util.log.LogMessage.*;
public class LoggerUtil {
public static ThreadLocal<Long> startSet = new ThreadLocal<>();
/**
* 打印日志:开始方法(业务调用)
*
* @param params 调用原方法入参
*/
public static void startLog(Object... params) {
String loggerName = getClassName();
Logger log = LoggerFactory.getLogger(loggerName);
log.info(LogMessage.Function_Start, loggerName);
log.debug(LogMessage.Params, getStr(params));
startSet.set(System.currentTimeMillis());
}
/**
* 打印日志:结束方法(业务调用)
*
* @param params 调用工具类的原方法返回值。
*/
public static void endLog(Object... params) {
Long start = startSet.get();
String loggerName = getClassName();
Logger log = LoggerFactory.getLogger(loggerName);
log.info(Function_End, loggerName);
log.debug(ReturnedValue, getStr(params));
if (start != null) {
startSet.remove();
log.debug(TimeCost, System.currentTimeMillis() - start);
}
}
public static void error(String msg) {
LoggerFactory.getLogger(getClassName()).error(msg);
}
public static void error(String msg, Object... obj) {
LoggerFactory.getLogger(getClassName()).error(msg, obj);
}
public static void warn(String msg) {
LoggerFactory.getLogger(getClassName()).error(msg);
}
public static void warn(String msg, Object... obj) {
LoggerFactory.getLogger(getClassName()).error(msg, obj);
}
public static void info(String msg) {
LoggerFactory.getLogger(getClassName()).info(msg);
}
public static void info(String msg, Object... obj) {
LoggerFactory.getLogger(getClassName()).info(msg, obj);
}
public static void debug(String msg) {
LoggerFactory.getLogger(getClassName()).debug(msg);
}
public static void debug(String msg, Object... obj) {
LoggerFactory.getLogger(getClassName()).debug(msg, obj);
}
/**
* 获取调用 LoggerUtil工具静态类的类名
*
* @return 长类名.方法名(行数)
* ps: 获取【行数】影响性能,生产环境中不建议打印行数。
*/
private static String getClassName() {
StackTraceElement element = Thread.currentThread().getStackTrace()[3];
//从程序栈中获取定位信息
String className = element.getClassName();
String methodName = element.getMethodName();
int lineNum = element.getLineNumber();
// return className + "." + methodName;
return String.format("%s.%s(%s)",className ,methodName,lineNum);
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false"> <!--
<springProperty scope="context" name="systemname" source="ibiz.systemname" /> scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。
<property name="LOG_PATH" value="logs" /> scanPeriod: 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。
<!--MDC自定义内容添加。--> 当scan为true时,此属性生效。默认的时间间隔为1分钟。
<!--<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5level] %-40.40logger{39} [%m][%X{mdc_trace_id}]: %msg%n" />--> 时间单位:milliseconds, seconds, minutes , hours
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5level] %-40.40logger{39} [%method]: %msg%n" /> debug: 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。
<!--<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5level] %-40.40logger{39} : %msg%n" />--> -->
<!-- 彩色日志 --> <configuration scan="false" scanPeriod="60 seconds" debug="false">
<!-- 彩色日志依赖的渲染类 --> <!--引用yaml文件配置,可以使用${变量名}方式使用-->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> <!--设置变量,name为变量名,value为值,可以使用${变量名}方式使用-->
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> <property name="LOG_PATH" value="logs"/>
<!-- 彩色日志格式 --> <property name="systemname" value="im" />
<property name="LOG_PATTERN2" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr([${LOG_LEVEL_PATTERN:-%5p}]) %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" /> <!--
定义PatternLayoutEncoder中日志输出格式:
<!-- 控制台输出 --> %d{yyyy-MM-dd HH:mm:ss.SSS} 时间戳及时间格式
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> %t 当前线程
%level 日志级别
%颜色名(正则) 用于控制台彩色日志生成
%logger 日志名(类/类+方法)名
%method 当前logger所在方法。
%msg 日志信息。
%n 换行。
X{key:-defaultVal}、mdc{key:-defaultVal} 输出生成日志事件的线程的 MDC(自定义参数)
%logger{39} 设置最大允许长度为39,超过将从最左边字符开始简写,但不包含最右边的部分。
%-20.30logger logger长度小于20,右边开始填充空格,大于30从前面开始阶段
其他格式标识见官网说明:http://www.logback.cn/06%E7%AC%AC%E5%85%AD%E7%AB%A0Layouts.html
-->
<!--日志打印正则,用于文件输出-->
<property name="LOG_PATTERN"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t][%-5level] %-40.40logger{39} [%method]: %msg%n"/>
<!--日志打印正则(带彩色日志),用于控制台输出-->
<property name="LOG_PATTERN_Color"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} [${systemname}][%t] %highlight([%-5level]) %yellow(%-40.40logger{39}) %cyan([%method]): %msg%n"/>
<!--
Appender: 设置日志信息的去向,常用的有以下几个
ch.qos.logback.core.ConsoleAppender (控制台)
ch.qos.logback.core.rolling.RollingFileAppender (文件大小到达指定尺寸的时候产生一个新文件)
ch.qos.logback.core.FileAppender (文件,不推荐使用)
-->
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern> <pattern>${LOG_PATTERN_Color}</pattern>
</encoder> </encoder>
</appender> </appender>
<!-- 按照每天生成日志文件 --> <!-- 按照每天生成日志文件 -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名--> <!--日志文件输出的文件名-->
<FileNamePattern>${LOG_PATH}/im.%d{yyyy-MM-dd}.log</FileNamePattern> <FileNamePattern>${LOG_PATH}/${systemname}.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数--> <!--日志文件保留天数-->
<MaxHistory>30</MaxHistory> <MaxHistory>30</MaxHistory>
</rollingPolicy> </rollingPolicy>
...@@ -37,10 +64,10 @@ ...@@ -37,10 +64,10 @@
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>100MB</MaxFileSize> <MaxFileSize>100MB</MaxFileSize>
</triggeringPolicy> </triggeringPolicy>
</appender> </appender>
<!--logstash远程日志添加--> <!--logstash远程日志添加-->
<appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--logstash server所在位置--> <!--logstash server所在位置-->
<destination>127.0.0.1:5044</destination> <destination>127.0.0.1:5044</destination>
<encoder class="net.logstash.logback.encoder.LogstashEncoder"> <encoder class="net.logstash.logback.encoder.LogstashEncoder">
...@@ -50,10 +77,138 @@ ...@@ -50,10 +77,138 @@
</timestamp> </timestamp>
</providers> </providers>
</encoder> </encoder>
</appender> </appender>
<!-- 日志输出级别 -->
<root level="INFO"> <!--
<appender-ref ref="console" /> 根据日志级别INFO、DEBUG、ERROR分别写入不同文件。
<appender-ref ref="file" /> 见appender SYS_INFO、SYS_DEBUG、SYS_ERROR
</root> -->
<appender name="SYS_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<File>langooo-api/log/info.log</File>-->
<append>true</append>
<!--过滤器,只打INFO级别的日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/info/${systemname}.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>${LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="SYS_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<File>langooo-api/log/error.log</File>-->
<append>true</append>
<!--过滤器,只打ERROR级别的日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/debug/${systemname}.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>12</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>${LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="SYS_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<File>langooo-api/log/error.log</File>-->
<append>true</append>
<!--过滤器,只打ERROR级别的日志-->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/error/${systemname}.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>12</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>${LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--
根据不同服务(包名),写入不同文件。
需要搭配<appender>与<logger>使用。
见resourceAppender及对应的logger
见serviceAppender及对应的logger
-->
<!--指定net.ibizsys.sample.mng.service.humanservice.resource日志文件输出位置,需要定义Logger使用,见下面logger标签-->
<appender name="resourceAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<file>/logs/resource-%d.log</file>-->
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/resource/${systemname}.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>${LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--指定net.ibizsys.sample.mng.core.valuerule.service日志文件输出位置,需要定义Logger使用,见下面logger标签。-->
<appender name="serviceAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--<file>/logs/service-%d.log</file>-->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/service/${systemname}.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder charset="UTF-8">
<pattern>${LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--net.ibizsys.sample.mng.service.humanservice.resource包中日志的appender配置-->
<logger name="net.ibizsys.sample.mng.service.humanservice.resource" level="DEBUG" additivity="false">
<appender-ref ref="resourceAppender"/>
<appender-ref ref="file"/>
<appender-ref ref="SYS_INFO"/>
<appender-ref ref="SYS_DEBUG"/>
<appender-ref ref="SYS_ERROR"/>
<appender-ref ref="console"/>
</logger>
<!--net.ibizsys.sample.mng.core.valuerule.service包中日志的appender配置-->
<logger name="net.ibizsys.sample.mng.core.valuerule.service" level="DEBUG" additivity="false">
<appender-ref ref="serviceAppender"/>
<appender-ref ref="file"/>
<appender-ref ref="SYS_INFO"/>
<appender-ref ref="SYS_DEBUG"/>
<appender-ref ref="SYS_ERROR"/>
<appender-ref ref="console"/>
</logger>
<!--
也是<logger>元素,但是它是根logger。只有一个level属性,应为已经被命名为"root".
level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
不能设置为INHERITED或者同义词NULL。默认是DEBUG。
优先级低于yaml配置。
当配置了子logger时,子logger优先级更高。
-->
<root level="DEBUG">
<appender-ref ref="console"/>
<appender-ref ref="file"/>
<!--<appender-ref ref="logstash"/>-->
<appender-ref ref="SYS_INFO"/>
<appender-ref ref="SYS_DEBUG"/>
<appender-ref ref="SYS_ERROR"/>
</root>
</configuration> </configuration>
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册