diff --git a/pom.xml b/pom.xml
index bafa9e3..58b8174 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
com.sunyard
sydapi4j
- 1.12.20220908-1
+ 1.12.20220908-3
diff --git a/src/main/java/com/sunyard/sge/database/SydApi.java b/src/main/java/com/sunyard/sge/database/SydApi.java
index e0acff4..7973d6f 100644
--- a/src/main/java/com/sunyard/sge/database/SydApi.java
+++ b/src/main/java/com/sunyard/sge/database/SydApi.java
@@ -1,5 +1,9 @@
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;
/**
@@ -13,7 +17,7 @@ public interface SydApi {
* @param pcLogPath: 输入。日志存储路径
* @param iLogLevel: 输入。日志级别设置
* 0:不记录日志,
- * @deprecated 1:记录网络层错误日志,
+ * 1:记录网络层错误日志,
* 2:记录接口错误日志及网络层错误日志,
* 3:记录正确日志及错误日志
* @return 无
@@ -24,6 +28,8 @@ public interface SydApi {
if (pcLogPath == null || iLogLevel < 0 || iLogLevel > 3) {
throw new IllegalArgumentException("地址不能为空且等级范围为0到3");
}
+ Logger logger = LogFactory.createLogger(pcLogPath, iLogLevel);
+ SydApi4j.setLogger(logger);
}
/**
diff --git a/src/main/java/com/sunyard/sge/database/SydApi4Database.java b/src/main/java/com/sunyard/sge/database/SydApi4Database.java
index d7f3d02..1181b4b 100644
--- a/src/main/java/com/sunyard/sge/database/SydApi4Database.java
+++ b/src/main/java/com/sunyard/sge/database/SydApi4Database.java
@@ -1,6 +1,7 @@
package com.sunyard.sge.database;
import com.sunyard.sge.database.pool.HsmLinkInfo;
+import com.sunyard.sge.log.LogFactory;
import com.sunyard.sge.pool.CommWorker;
import racal.sunyard.main.SydApi4j;
@@ -23,7 +24,9 @@ public class SydApi4Database extends SydApiBaseFunction {
public SydApi4Database(SydApi4j[] hsms, HsmLinkInfo[] linkInfos) {
super(hsms, linkInfos);
}
-
+ static {
+ LogFactory.createLogger("./logs", 0);
+ }
@Override
public List SYD_SM4_BatchData(int[] iKeyIndex, List pcData, int iFlag) {
diff --git a/src/main/java/com/sunyard/sge/database/SydApiBaseFunction.java b/src/main/java/com/sunyard/sge/database/SydApiBaseFunction.java
index 7188b04..26b23e2 100644
--- a/src/main/java/com/sunyard/sge/database/SydApiBaseFunction.java
+++ b/src/main/java/com/sunyard/sge/database/SydApiBaseFunction.java
@@ -16,7 +16,9 @@ import java.util.List;
* 上海黄金交易所 - 数据库加密方案
*/
public class SydApiBaseFunction implements SydApi {
-
+ static {
+ LogFactory.createLogger("./logs", 0);
+ }
private SydApi4j[] hsms = null;
private HsmLinkInfo[] linkInfos = null;
private ObjectInPool oip = null;
diff --git a/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java b/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java
index 2828712..064a9ed 100644
--- a/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java
+++ b/src/main/java/com/sunyard/sge/database/SydApiLongLinkWrap.java
@@ -1,6 +1,7 @@
package com.sunyard.sge.database;
import com.sunyard.SydApiException;
+import com.sunyard.sge.log.LogFactory;
import java.util.ArrayList;
import java.util.Arrays;
@@ -16,6 +17,9 @@ import static com.sunyard.sge.database.SydApiConfig.BATCH_SIZE;
* 长连接的真正执行过程转发到长连接线程池中执行。
*/
public class SydApiLongLinkWrap implements SydApi {
+ static {
+ LogFactory.createLogger("./logs", 0);
+ }
private SydApiBuilder builder;
diff --git a/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java b/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java
index 3a0de84..909e695 100644
--- a/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java
+++ b/src/main/java/com/sunyard/sge/database/pool/SydApiPool.java
@@ -13,7 +13,9 @@ import racal.sunyard.main.SydApi4j;
public class SydApiPool extends ThreadBasedConnectPool {
private HsmLinkInfo[] linkInfos;
-
+ static {
+ LogFactory.createLogger("./logs", 0);
+ }
public SydApiPool(HsmLinkInfo[] linkInfos) {
super();
this.linkInfos = linkInfos;
diff --git a/src/main/java/com/sunyard/sge/log/LogFactory.java b/src/main/java/com/sunyard/sge/log/LogFactory.java
new file mode 100644
index 0000000..4f2db66
--- /dev/null
+++ b/src/main/java/com/sunyard/sge/log/LogFactory.java
@@ -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);
+ }
+
+
+}
diff --git a/src/test/java/sample/Sample.java b/src/test/java/sample/Sample.java
index f6d0e76..d1081e9 100644
--- a/src/test/java/sample/Sample.java
+++ b/src/test/java/sample/Sample.java
@@ -18,7 +18,7 @@ public class Sample
// 通常单例就够了
SydApiBuilder builder = new SydApiBuilder(
- new String[]{ "192.168.1.128" },
+ new String[]{ "192.168.1.129" },
new int[]{ 8889 },
10,
15
diff --git a/src/test/java/test/FuncTest.java b/src/test/java/test/FuncTest.java
index 0349481..65882ea 100644
--- a/src/test/java/test/FuncTest.java
+++ b/src/test/java/test/FuncTest.java
@@ -1,6 +1,7 @@
package test;
import com.sunyard.sge.database.*;
+import com.sunyard.sge.log.LogFactory;
import org.apache.logging.log4j.Logger;
import org.junit.Before;
import org.junit.Test;
diff --git a/sydapi-database.iml b/sydapi-database.iml
index 4d7f858..2c06296 100644
--- a/sydapi-database.iml
+++ b/sydapi-database.iml
@@ -12,11 +12,10 @@
-
-
-
-
+
+
+
\ No newline at end of file