修改日志
This commit is contained in:
parent
eaf270a7a5
commit
90a45cedd7
2
pom.xml
2
pom.xml
@ -28,7 +28,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.sunyard</groupId>
|
<groupId>com.sunyard</groupId>
|
||||||
<artifactId>sydapi4j</artifactId>
|
<artifactId>sydapi4j</artifactId>
|
||||||
<version>1.12.20220908-1</version>
|
<version>1.12.20220908-3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,9 @@
|
|||||||
package com.sunyard.sge.database;
|
package com.sunyard.sge.database;
|
||||||
|
|
||||||
|
import com.sunyard.sge.log.LogFactory;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import racal.sunyard.main.SydApi4j;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -13,7 +17,7 @@ public interface SydApi {
|
|||||||
* @param pcLogPath: 输入。日志存储路径
|
* @param pcLogPath: 输入。日志存储路径
|
||||||
* @param iLogLevel: 输入。日志级别设置
|
* @param iLogLevel: 输入。日志级别设置
|
||||||
* 0:不记录日志,
|
* 0:不记录日志,
|
||||||
* @deprecated 1:记录网络层错误日志,
|
* 1:记录网络层错误日志,
|
||||||
* 2:记录接口错误日志及网络层错误日志,
|
* 2:记录接口错误日志及网络层错误日志,
|
||||||
* 3:记录正确日志及错误日志
|
* 3:记录正确日志及错误日志
|
||||||
* @return 无
|
* @return 无
|
||||||
@ -24,6 +28,8 @@ public interface SydApi {
|
|||||||
if (pcLogPath == null || iLogLevel < 0 || iLogLevel > 3) {
|
if (pcLogPath == null || iLogLevel < 0 || iLogLevel > 3) {
|
||||||
throw new IllegalArgumentException("地址不能为空且等级范围为0到3");
|
throw new IllegalArgumentException("地址不能为空且等级范围为0到3");
|
||||||
}
|
}
|
||||||
|
Logger logger = LogFactory.createLogger(pcLogPath, iLogLevel);
|
||||||
|
SydApi4j.setLogger(logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.sunyard.sge.database;
|
package com.sunyard.sge.database;
|
||||||
|
|
||||||
import com.sunyard.sge.database.pool.HsmLinkInfo;
|
import com.sunyard.sge.database.pool.HsmLinkInfo;
|
||||||
|
import com.sunyard.sge.log.LogFactory;
|
||||||
import com.sunyard.sge.pool.CommWorker;
|
import com.sunyard.sge.pool.CommWorker;
|
||||||
import racal.sunyard.main.SydApi4j;
|
import racal.sunyard.main.SydApi4j;
|
||||||
|
|
||||||
@ -23,7 +24,9 @@ public class SydApi4Database extends SydApiBaseFunction {
|
|||||||
public SydApi4Database(SydApi4j[] hsms, HsmLinkInfo[] linkInfos) {
|
public SydApi4Database(SydApi4j[] hsms, HsmLinkInfo[] linkInfos) {
|
||||||
super(hsms, linkInfos);
|
super(hsms, linkInfos);
|
||||||
}
|
}
|
||||||
|
static {
|
||||||
|
LogFactory.createLogger("./logs", 0);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) {
|
public List<byte[]> SYD_SM4_BatchData(int[] iKeyIndex, List<byte[]> pcData, int iFlag) {
|
||||||
|
|||||||
@ -16,7 +16,9 @@ import java.util.List;
|
|||||||
* 上海黄金交易所 - 数据库加密方案
|
* 上海黄金交易所 - 数据库加密方案
|
||||||
*/
|
*/
|
||||||
public class SydApiBaseFunction implements SydApi {
|
public class SydApiBaseFunction implements SydApi {
|
||||||
|
static {
|
||||||
|
LogFactory.createLogger("./logs", 0);
|
||||||
|
}
|
||||||
private SydApi4j[] hsms = null;
|
private SydApi4j[] hsms = null;
|
||||||
private HsmLinkInfo[] linkInfos = null;
|
private HsmLinkInfo[] linkInfos = null;
|
||||||
private ObjectInPool oip = null;
|
private ObjectInPool oip = null;
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.sunyard.sge.database;
|
package com.sunyard.sge.database;
|
||||||
|
|
||||||
import com.sunyard.SydApiException;
|
import com.sunyard.SydApiException;
|
||||||
|
import com.sunyard.sge.log.LogFactory;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -16,6 +17,9 @@ import static com.sunyard.sge.database.SydApiConfig.BATCH_SIZE;
|
|||||||
* 长连接的真正执行过程转发到长连接线程池中执行。
|
* 长连接的真正执行过程转发到长连接线程池中执行。
|
||||||
*/
|
*/
|
||||||
public class SydApiLongLinkWrap implements SydApi {
|
public class SydApiLongLinkWrap implements SydApi {
|
||||||
|
static {
|
||||||
|
LogFactory.createLogger("./logs", 0);
|
||||||
|
}
|
||||||
|
|
||||||
private SydApiBuilder builder;
|
private SydApiBuilder builder;
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,9 @@ import racal.sunyard.main.SydApi4j;
|
|||||||
public class SydApiPool extends ThreadBasedConnectPool<SydApi> {
|
public class SydApiPool extends ThreadBasedConnectPool<SydApi> {
|
||||||
|
|
||||||
private HsmLinkInfo[] linkInfos;
|
private HsmLinkInfo[] linkInfos;
|
||||||
|
static {
|
||||||
|
LogFactory.createLogger("./logs", 0);
|
||||||
|
}
|
||||||
public SydApiPool(HsmLinkInfo[] linkInfos) {
|
public SydApiPool(HsmLinkInfo[] linkInfos) {
|
||||||
super();
|
super();
|
||||||
this.linkInfos = linkInfos;
|
this.linkInfos = linkInfos;
|
||||||
|
|||||||
112
src/main/java/com/sunyard/sge/log/LogFactory.java
Normal file
112
src/main/java/com/sunyard/sge/log/LogFactory.java
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
package com.sunyard.sge.log;
|
||||||
|
|
||||||
|
import com.sunyard.sge.database.Consts;
|
||||||
|
import org.apache.logging.log4j.Level;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.core.Appender;
|
||||||
|
import org.apache.logging.log4j.core.Layout;
|
||||||
|
import org.apache.logging.log4j.core.LoggerContext;
|
||||||
|
import org.apache.logging.log4j.core.appender.FileAppender;
|
||||||
|
import org.apache.logging.log4j.core.appender.rolling.SizeBasedTriggeringPolicy;
|
||||||
|
import org.apache.logging.log4j.core.appender.rolling.TriggeringPolicy;
|
||||||
|
import org.apache.logging.log4j.core.config.AppenderRef;
|
||||||
|
import org.apache.logging.log4j.core.config.Configuration;
|
||||||
|
import org.apache.logging.log4j.core.config.LoggerConfig;
|
||||||
|
import org.apache.logging.log4j.core.layout.PatternLayout;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 金交所定制日志
|
||||||
|
*/
|
||||||
|
public class LogFactory {
|
||||||
|
|
||||||
|
// 金交所定制日志
|
||||||
|
public static final String logName = "sge-hsm-sydapi-log";
|
||||||
|
|
||||||
|
// 日志级别
|
||||||
|
public static int iLogLevel = Consts.LogLevelOFF;
|
||||||
|
|
||||||
|
// Levels
|
||||||
|
private static final Level[] levels = new Level[]{ Level.OFF, Level.ERROR, Level.INFO, Level.DEBUG };
|
||||||
|
|
||||||
|
// 日志目录
|
||||||
|
private static String pcLogPath = "./sydapi-logs/";
|
||||||
|
|
||||||
|
// // 日期格式
|
||||||
|
// private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
|
private LogFactory() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void start() {
|
||||||
|
// 上下文
|
||||||
|
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
||||||
|
final Configuration config = ctx.getConfiguration();
|
||||||
|
|
||||||
|
// 创建一个展示的样式
|
||||||
|
Layout layout = PatternLayout.createLayout(
|
||||||
|
"[%level{DEBUG=3, INFO=2, ERROR=1, OFF=0}: %d{ISO8601} <%thread>] %message%n%throwable",
|
||||||
|
null,
|
||||||
|
config, null, null, true, false, null, null);
|
||||||
|
|
||||||
|
|
||||||
|
TriggeringPolicy tp = SizeBasedTriggeringPolicy.createPolicy("10MB");
|
||||||
|
|
||||||
|
// Appender appender = RollingFileAppender.createAppender(String.format("logs/test/syncshows-job-%s.log", jobID),
|
||||||
|
// "/logs/test/" + jobID + "/syncshows-job-" + jobID + ".log.gz",
|
||||||
|
// "true", jobID, null, null, null, tp, null, layout, null,
|
||||||
|
// null, null, null, config);
|
||||||
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
// 日志打印方式——输出为文件
|
||||||
|
Appender appender = FileAppender.createAppender(
|
||||||
|
String.format( pcLogPath +"sydapi_"+ format.format(new Date()) + ".log"),
|
||||||
|
"true", "false",
|
||||||
|
logName, null, "true", "true", null, layout, null, null, null, config);
|
||||||
|
|
||||||
|
appender.start();
|
||||||
|
config.addAppender(appender);
|
||||||
|
AppenderRef ref = AppenderRef.createAppenderRef( logName, levels[ iLogLevel ], null);
|
||||||
|
AppenderRef[] refs = new AppenderRef[]{ref};
|
||||||
|
LoggerConfig loggerConfig = LoggerConfig.createLogger("false", levels[ iLogLevel ], logName,
|
||||||
|
"true", refs, null, config, null);
|
||||||
|
loggerConfig.addAppender(appender, levels[ iLogLevel ], null);
|
||||||
|
config.addLogger( logName, loggerConfig);
|
||||||
|
ctx.updateLoggers();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void stop() {
|
||||||
|
final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
|
||||||
|
final Configuration config = ctx.getConfiguration();
|
||||||
|
config.getAppender( logName ).stop();
|
||||||
|
config.getLoggerConfig(logName).removeAppender( logName);
|
||||||
|
config.removeLogger(logName);
|
||||||
|
ctx.updateLoggers();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建 Logger
|
||||||
|
* @return Logger
|
||||||
|
*/
|
||||||
|
public static Logger createLogger(String pcLogPath, int iLogLevel) {
|
||||||
|
LogFactory.pcLogPath = pcLogPath;
|
||||||
|
LogFactory.iLogLevel = iLogLevel;
|
||||||
|
start();
|
||||||
|
return LogManager.getLogger(logName);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取 Logger
|
||||||
|
* @return Logger
|
||||||
|
*/
|
||||||
|
public static Logger getLogger() {
|
||||||
|
return LogManager.getLogger(logName);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -18,7 +18,7 @@ public class Sample
|
|||||||
|
|
||||||
// 通常单例就够了
|
// 通常单例就够了
|
||||||
SydApiBuilder builder = new SydApiBuilder(
|
SydApiBuilder builder = new SydApiBuilder(
|
||||||
new String[]{ "192.168.1.128" },
|
new String[]{ "192.168.1.129" },
|
||||||
new int[]{ 8889 },
|
new int[]{ 8889 },
|
||||||
10,
|
10,
|
||||||
15
|
15
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package test;
|
package test;
|
||||||
|
|
||||||
import com.sunyard.sge.database.*;
|
import com.sunyard.sge.database.*;
|
||||||
|
import com.sunyard.sge.log.LogFactory;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|||||||
@ -12,11 +12,10 @@
|
|||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" />
|
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" />
|
||||||
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
|
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.sunyard:sydapi4j:1.0.20220902" level="project" />
|
<orderEntry type="library" name="Maven: com.sunyard:sydapi4j:1.12.20220908-3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.sunyard:proto:1.0-20220412" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.codehaus.groovy:groovy-all:2.4.15" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.10" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.0" level="project" />
|
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.17.0" level="project" />
|
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.17.0" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: com.sunyard:proto:1.0-20220905" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.codehaus.groovy:groovy-all:2.4.15" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
Loading…
Reference in New Issue
Block a user