From 7649a507aa4be6b23913f7cb08f3ee938c49a6b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9rik=20BENOIST?= Date: Sun, 31 Dec 2023 07:49:27 +0100 Subject: [PATCH] refactor: xadmin and store logs --- .../com/example/services/StoreService.java | 150 +++++++--------- .../com/example/services/XadminService.java | 163 +++++++++++------- .../XadminLog.java} | 13 +- 3 files changed, 180 insertions(+), 146 deletions(-) rename src/main/java/com/example/services/xadmin/{application/XadminApplicationLog.java => log/XadminLog.java} (87%) diff --git a/src/main/java/com/example/services/StoreService.java b/src/main/java/com/example/services/StoreService.java index 9cff414..26c888a 100644 --- a/src/main/java/com/example/services/StoreService.java +++ b/src/main/java/com/example/services/StoreService.java @@ -1,7 +1,7 @@ package com.example.services; import com.example.services.store.*; -import com.example.services.xadmin.application.*; +import com.example.services.xadmin.log.XadminLog; import javax.ws.rs.GET; import javax.ws.rs.Path; @@ -19,10 +19,7 @@ import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Calendar; import java.util.Collections; import java.util.List; import java.util.concurrent.locks.Lock; @@ -33,7 +30,7 @@ import org.slf4j.LoggerFactory; @Path("/stores") public class StoreService { - private static final Logger logger = LoggerFactory.getLogger(DatabaseConnectDOTSOFT.class); + private static final Logger logger = LoggerFactory.getLogger(StoreService.class); private static List cachedStoreList; private static final Lock cacheLock = new ReentrantLock(); @@ -227,7 +224,7 @@ public class StoreService { try (DatabaseConnectXSTORE databaseConnection = new DatabaseConnectXSTORE(dbHost,"dtv")) { - String query = "SELECT ORGANIZATION_ID, RTL_LOC_ID, WKSTN_ID, SEQUENCE_ID, SEQUENCE_MODE, SEQUENCE_NBR, CREATE_DATE, CREATE_USER_ID, UPDATE_DATE, UPDATE_USER_ID, RECORD_STATE " + + String query = "SELECT ORGANIZATION_ID, RTL_LOC_ID, WKSTN_ID, SEQUENCE_ID, SEQUENCE_MODE, SEQUENCE_NBR, CREATE_DATE, CREATE_USER_ID, UPDATE_DATE, UPDATE_USER_ID, RECORD_STATE "+ "FROM DTV.COM_SEQUENCE " + "WHERE organization_id = 1 " + "ORDER BY WKSTN_ID, SEQUENCE_ID"; @@ -389,65 +386,26 @@ public class StoreService { DriverManager.setLoginTimeout(5); // Set timeout to 5 seconds try (DatabaseConnectXSTORE databaseConnection = new DatabaseConnectXSTORE(dbHost,"dtv")) { - SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); - java.util.Date startDate; - Integer timezoneOffset = 0; - - try { - startDate = formatter.parse(logDate); - Calendar cal = Calendar.getInstance(); - cal.setTime(startDate); - cal.add(Calendar.DATE, -9); - java.util.Date endDate = cal.getTime(); - - String queryTZ = "SELECT timezone_offset " + - "FROM (" + - " SELECT EXTRACT(HOUR FROM CAST(tt.BEGIN_DATETIME AS TIMESTAMP)) - EXTRACT(HOUR FROM CAST(tt.create_date AS TIMESTAMP)) AS timezone_offset " + - " FROM dtv.trn_trans tt " + - " WHERE" + - " tt.ORGANIZATION_ID = 1" + - " AND tt.RTL_LOC_ID = ?" + - " AND tt.BUSINESS_DATE = TRUNC(?)" + - " AND tt.trans_TYPCODE = 'SYSTEM_OPEN'" + - " AND tt.TRANS_STATCODE = 'COMPLETE'" + - ") " + - "WHERE ROWNUM = 1"; - - logger.info(queryTZ); - while (startDate.compareTo(endDate) >= 0) { - try (PreparedStatement pst = databaseConnection.getConnection().prepareStatement(queryTZ)) { - pst.setInt(1, storeId); - pst.setDate(2, new java.sql.Date(startDate.getTime())); - - try (ResultSet rs = pst.executeQuery()) { - if (rs.next()) { - Integer tempTimezoneOffset = rs.getInt("timezone_offset"); - if (tempTimezoneOffset != null) { - timezoneOffset = tempTimezoneOffset; - break; - } - } - } - } - - cal.setTime(startDate); - cal.add(Calendar.DATE, -1); - startDate = (java.util.Date) cal.getTime(); - } - } catch (ParseException e) { - e.printStackTrace(); - } - - // to prevent timezone offset from being too large - if (Math.abs(timezoneOffset) > 3) { - timezoneOffset = 0; - } - - // WHERE cel.CREATE_DATE does not take time zone into account (...+ INTERVAL '1' HOUR * ?) - String query = "SELECT cel.CREATE_DATE + INTERVAL '1' HOUR * ? as CREATE_DATE, " + + String query = "SELECT" + + " FROM_TZ(cel.CREATE_DATE, 'UTC') " + + " AT TIME ZONE " + + " CASE loc.COUNTRY " + + " WHEN 'CH' THEN 'Europe/Zurich' " + + " WHEN 'NL' THEN 'Europe/Amsterdam' " + + " WHEN 'MC' THEN 'Europe/Monaco' " + + " WHEN 'LU' THEN 'Europe/Luxembourg' " + + " WHEN 'ES' THEN 'Europe/Madrid' " + + " WHEN 'FR' THEN 'Europe/Paris' " + + " WHEN 'US' THEN 'America/New_York' " + + " WHEN 'GB' THEN 'Europe/London' " + + " WHEN 'BE' THEN 'Europe/Brussels' " + + " ELSE 'UTC' " + + " END " + + "AS CREATE_DATE, " + "cel.CREATE_USER_ID, " + "cel.BUSINESS_DATE, " + - "cel.RTL_LOC_ID, " + + "cel.RTL_LOC_ID, "+ + "cel.RTL_LOC_ID || ' - ' || loc.STORE_NAME AS STORE_NAME, " + "cel.WKSTN_ID, " + "cel.LOG_LEVEL, " + "cel.THREAD_NAME, " + @@ -460,27 +418,50 @@ public class StoreService { " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.state.app.shutdown' THEN 'Xstore shutdown' " + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.helpdesk.memory' THEN 'Application core' " + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.helpdesk' THEN 'Application core' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.sysadmin.data.repqueue.errors' THEN 'Replication errors' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.sysadmin.data.repqueue.nofails' THEN 'Replication errors' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.hardware.init' THEN 'Hardware init' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.sensitive-data.logging' THEN 'Sensitive data logging' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.uncaught' THEN 'Uncaught exception' " + "ELSE cel.LOGGER_CATEGORY END as LOGGER_CATEGORY " + - "FROM dtv.CTL_EVENT_LOG cel " + - "WHERE cel.CREATE_DATE BETWEEN TO_DATE( ?, 'rrrrmmdd') AND TO_DATE( ?, 'rrrrmmdd hh24:mi:ss') " + + "FROM dtv.CTL_EVENT_LOG cel " + + "JOIN dtv.LOC_RTL_LOC loc ON loc.RTL_LOC_ID = cel.RTL_LOC_ID " + + "WHERE cel.CREATE_DATE BETWEEN " + + "TO_TIMESTAMP(?, 'YYYYMMDD HH24:MI:SS') - INTERVAL '3' HOUR " + + "AND " + + "TO_TIMESTAMP(?, 'YYYYMMDD HH24:MI:SS') + INTERVAL '3' HOUR " + + "AND TO_CHAR(FROM_TZ(cel.CREATE_DATE, 'UTC') AT TIME ZONE " + + "CASE loc.COUNTRY " + + " WHEN 'CH' THEN 'Europe/Zurich' " + + " WHEN 'NL' THEN 'Europe/Amsterdam' " + + " WHEN 'MC' THEN 'Europe/Monaco' " + + " WHEN 'LU' THEN 'Europe/Luxembourg' " + + " WHEN 'ES' THEN 'Europe/Madrid' " + + " WHEN 'FR' THEN 'Europe/Paris' " + + " WHEN 'US' THEN 'America/New_York' " + + " WHEN 'GB' THEN 'Europe/London' " + + " WHEN 'BE' THEN 'Europe/Brussels' " + + " ELSE 'UTC' " + + "END, 'YYYYMMDD HH24:MI:SS') BETWEEN ? AND ? " + "AND cel.ORGANIZATION_ID = 1 " + "AND cel.RTL_LOC_ID = ? " + "AND cel.THREAD_NAME IS NOT NULL " + - "ORDER BY cel.CREATE_DATE DESC"; + "ORDER BY cel.CREATE_DATE DESC"; logger.info(query); try (PreparedStatement statement = databaseConnection.getConnection().prepareStatement(query)) { - statement.setInt(1, timezoneOffset); - statement.setString(2, logDate); - statement.setString(3, logDate + " 23:59:59"); - statement.setInt(4, storeId); + statement.setString(1, logDate + " 00:00:00"); + statement.setString(2, logDate + " 23:59:59"); + statement.setString(3, logDate + " 00:00:00"); + statement.setString(4, logDate + " 23:59:59"); + statement.setInt(5, storeId); ResultSet resultSet = statement.executeQuery(); - List storeLogList = new ArrayList<>(); + List storeLogList = new ArrayList<>(); while (resultSet.next()) { - XadminApplicationLog storeLog = mapResultSetToStoreLog(resultSet); + XadminLog storeLog = mapResultSetToStoreLog(resultSet); storeLogList.add(storeLog); } @@ -501,20 +482,21 @@ public class StoreService { } } - public XadminApplicationLog mapResultSetToStoreLog(ResultSet resultSet) throws SQLException { - XadminApplicationLog xadminapplicationlog = new XadminApplicationLog(); + public XadminLog mapResultSetToStoreLog(ResultSet resultSet) throws SQLException { + XadminLog xadminlog = new XadminLog(); - xadminapplicationlog.setCreateDate(resultSet.getDate("CREATE_DATE")); - xadminapplicationlog.setCreateUserId(resultSet.getString("CREATE_USER_ID")); - xadminapplicationlog.setBusinessDate(resultSet.getDate("BUSINESS_DATE")); - xadminapplicationlog.setRtlLocId(resultSet.getInt("RTL_LOC_ID")); - xadminapplicationlog.setWkstnId(resultSet.getInt("WKSTN_ID")); - xadminapplicationlog.setLogLevel(resultSet.getString("LOG_LEVEL")); - xadminapplicationlog.setThreadName(resultSet.getString("THREAD_NAME")); - xadminapplicationlog.setLogMessage(resultSet.getString("LOG_MESSAGE")); - xadminapplicationlog.setLoggerCategory(resultSet.getString("LOGGER_CATEGORY")); + xadminlog.setCreateDate(resultSet.getDate("CREATE_DATE")); + xadminlog.setCreateUserId(resultSet.getString("CREATE_USER_ID")); + xadminlog.setBusinessDate(resultSet.getDate("BUSINESS_DATE")); + xadminlog.setRtlLocId(resultSet.getInt("RTL_LOC_ID")); + xadminlog.setStoreName(resultSet.getString("STORE_NAME")); + xadminlog.setWkstnId(resultSet.getInt("WKSTN_ID")); + xadminlog.setLogLevel(resultSet.getString("LOG_LEVEL")); + xadminlog.setThreadName(resultSet.getString("THREAD_NAME")); + xadminlog.setLogMessage(resultSet.getString("LOG_MESSAGE")); + xadminlog.setLoggerCategory(resultSet.getString("LOGGER_CATEGORY")); - return xadminapplicationlog; + return xadminlog; } /** diff --git a/src/main/java/com/example/services/XadminService.java b/src/main/java/com/example/services/XadminService.java index 43e6328..049eb98 100644 --- a/src/main/java/com/example/services/XadminService.java +++ b/src/main/java/com/example/services/XadminService.java @@ -1,10 +1,9 @@ package com.example.services; -import com.example.services.xadmin.application.XadminApplicationLog; +import com.example.services.xadmin.log.XadminLog; import javax.ws.rs.GET; import javax.ws.rs.Path; -import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; @@ -17,8 +16,6 @@ import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; @@ -30,72 +27,116 @@ public class XadminService { private static final Logger logger = LoggerFactory.getLogger(DatabaseConnectXADMIN.class); @GET - @Path("/application/log/{storeId}") + @Path("/log") @Produces(MediaType.APPLICATION_JSON) - public Response getApplicationLogByStoreId(@PathParam("storeId") Integer storeId, - @QueryParam("WkstnId") Integer wkstnId, - @QueryParam("BeginDate") String beginDate, - @QueryParam("EndDate") String endDate, - @QueryParam("SearchText") String searchText) { - if (storeId == null) { - return Response.status(Response.Status.BAD_REQUEST).entity("{\"error\":\"storeId parameter is required\"}").build(); - } - + public Response getLogByStoreId(@QueryParam("storeId") Integer storeId, + @QueryParam("wkstnId") Integer wkstnId, + @QueryParam("beginDate") String beginDate, + @QueryParam("endDate") String endDate, + @QueryParam("searchText") String searchText) { + if (beginDate == null || endDate == null) { return Response.status(Response.Status.BAD_REQUEST).entity("{\"error\":\"BeginDate and EndDate parameters are required\"}").build(); } - DriverManager.setLoginTimeout(5); // Définir le timeout à 5 secondes + DriverManager.setLoginTimeout(5); // Set timeout to 5 seconds try (DatabaseConnectXADMIN databaseConnection = new DatabaseConnectXADMIN("dtv")) { - String query = - "SELECT cel.BUSINESS_DATE, " + - "cel.CREATE_DATE, " + - "cel.CREATE_USER_ID, " + - "cel.RTL_LOC_ID, " + - "cel.WKSTN_ID, " + - "cel.LOG_LEVEL, " + - "cel.THREAD_NAME, " + - "cel.LOG_MESSAGE " + - "FROM dtv.CTL_EVENT_LOG cel " + - "WHERE cel.CREATE_DATE BETWEEN ? AND TRUNC(? + 1) " + - "AND cel.ORGANIZATION_ID = 1 " + - "AND cel.RTL_LOC_ID = ? " + - (wkstnId != null ? "AND cel.WKSTN_ID = ? " : "") + - "ORDER BY cel.CREATE_DATE"; + String query = "SELECT" + + " FROM_TZ(cel.CREATE_DATE, 'UTC') " + + " AT TIME ZONE " + + " CASE loc.COUNTRY " + + " WHEN 'CH' THEN 'Europe/Zurich' " + + " WHEN 'NL' THEN 'Europe/Amsterdam' " + + " WHEN 'MC' THEN 'Europe/Monaco' " + + " WHEN 'LU' THEN 'Europe/Luxembourg' " + + " WHEN 'ES' THEN 'Europe/Madrid' " + + " WHEN 'FR' THEN 'Europe/Paris' " + + " WHEN 'US' THEN 'America/New_York' " + + " WHEN 'GB' THEN 'Europe/London' " + + " WHEN 'BE' THEN 'Europe/Brussels' " + + " ELSE 'UTC' " + + " END " + + "AS CREATE_DATE, " + + "cel.CREATE_USER_ID, " + + "cel.BUSINESS_DATE, " + + "cel.RTL_LOC_ID, " + + "cel.RTL_LOC_ID || ' - ' || loc.STORE_NAME AS STORE_NAME, " + + "cel.WKSTN_ID, " + + "cel.LOG_LEVEL, " + + "cel.THREAD_NAME, " + + "cel.LOG_MESSAGE, " + + "CASE WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.app.preflight' THEN 'Pre-flight error' " + + " WHEN cel.LOGGER_CATEGORY LIKE 'dtv.xstore.dataloader%' THEN 'DataLoader' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.sysadmin.data.failover' THEN 'Data-failover' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.order.download.offline' THEN 'Order error' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.state.app.startup' THEN 'Xstore startup' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.state.app.shutdown' THEN 'Xstore shutdown' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.helpdesk.memory' THEN 'Application core' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.helpdesk' THEN 'Application core' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.sysadmin.data.repqueue.errors' THEN 'Replication errors' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.sysadmin.data.repqueue.nofails' THEN 'Replication errors' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.hardware.init' THEN 'Hardware init' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.sensitive-data.logging' THEN 'Sensitive data logging' " + + " WHEN cel.LOGGER_CATEGORY = 'dtv.xstore.uncaught' THEN 'Uncaught exception' " + + "ELSE cel.LOGGER_CATEGORY END as LOGGER_CATEGORY " + + "FROM dtv.CTL_EVENT_LOG cel " + + "JOIN dtv.LOC_RTL_LOC loc ON loc.RTL_LOC_ID = cel.RTL_LOC_ID " + + "WHERE cel.CREATE_DATE BETWEEN " + + "TO_TIMESTAMP(?, 'YYYYMMDD HH24:MI:SS') - INTERVAL '3' HOUR " + + "AND " + + "TO_TIMESTAMP(?, 'YYYYMMDD HH24:MI:SS') + INTERVAL '3' HOUR " + + "AND TO_CHAR(FROM_TZ(cel.CREATE_DATE, 'UTC') AT TIME ZONE " + + "CASE loc.COUNTRY " + + " WHEN 'CH' THEN 'Europe/Zurich' " + + " WHEN 'NL' THEN 'Europe/Amsterdam' " + + " WHEN 'MC' THEN 'Europe/Monaco' " + + " WHEN 'LU' THEN 'Europe/Luxembourg' " + + " WHEN 'ES' THEN 'Europe/Madrid' " + + " WHEN 'FR' THEN 'Europe/Paris' " + + " WHEN 'US' THEN 'America/New_York' " + + " WHEN 'GB' THEN 'Europe/London' " + + " WHEN 'BE' THEN 'Europe/Brussels' " + + " ELSE 'UTC' " + + "END, 'YYYYMMDD HH24:MI:SS') BETWEEN ? AND ? " + + "AND cel.ORGANIZATION_ID = 1 " + + (storeId != null ? "AND cel.RTL_LOC_ID = ? " : "") + + (wkstnId != null ? "AND cel.WKSTN_ID = ? " : "") + + (searchText != null ? "AND LOWER(cel.LOG_MESSAGE) LIKE ? " : "") + + "AND cel.THREAD_NAME IS NOT NULL " + + "ORDER BY cel.CREATE_DATE DESC"; logger.info(query); - try (PreparedStatement statement = databaseConnection.getConnection().prepareStatement(query)) { - SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); - java.sql.Date parsedBeginDate = null; - java.sql.Date parsedEndDate = null; + statement.setString(1, beginDate); + statement.setString(2, endDate + " 23:59:59"); + statement.setString(3, beginDate); + statement.setString(4, endDate + " 23:59:59"); - try { - parsedBeginDate = new java.sql.Date(format.parse(beginDate).getTime()); - parsedEndDate = new java.sql.Date(format.parse(endDate).getTime()); - } catch (ParseException e) { - e.printStackTrace(); - } + Integer indexParam = 5; - statement.setDate(1, parsedBeginDate); - statement.setDate(2, parsedEndDate); - statement.setInt(3, storeId); + if (storeId != null) { + statement.setInt( indexParam++, storeId); + } - if(wkstnId != null) { - statement.setInt(4, wkstnId); + if (wkstnId != null) { + statement.setInt(indexParam++,wkstnId); + } + + if(searchText != null) { + statement.setString(indexParam++, "%" + searchText.toLowerCase() + "%"); } try (ResultSet resultSet = statement.executeQuery()) { - List xadminApplicationLogList = new ArrayList<>(); + List xadminLogList = new ArrayList<>(); while (resultSet.next()) { - XadminApplicationLog xadminApplicationLog = mapResultSetToApplicationLog(resultSet); - xadminApplicationLogList.add(xadminApplicationLog); + XadminLog xadminLog = mapResultSetToXadminLog(resultSet); + xadminLogList.add(xadminLog); } ObjectMapper objectMapper = new ObjectMapper(); - String jsonResponse = objectMapper.writeValueAsString(xadminApplicationLogList); + String jsonResponse = objectMapper.writeValueAsString(xadminLogList); return Response.ok(jsonResponse).build(); } @@ -110,18 +151,20 @@ public class XadminService { } } - public XadminApplicationLog mapResultSetToApplicationLog(ResultSet resultSet) throws SQLException { - XadminApplicationLog xadminapplicationlog = new XadminApplicationLog(); + public XadminLog mapResultSetToXadminLog(ResultSet resultSet) throws SQLException { + XadminLog xadminlog = new XadminLog(); - xadminapplicationlog.setBusinessDate(resultSet.getDate("BUSINESS_DATE")); - xadminapplicationlog.setCreateDate(resultSet.getDate("CREATE_DATE")); - xadminapplicationlog.setCreateUserId(resultSet.getString("CREATE_USER_ID")); - xadminapplicationlog.setRtlLocId(resultSet.getInt("RTL_LOC_ID")); - xadminapplicationlog.setWkstnId(resultSet.getInt("WKSTN_ID")); - xadminapplicationlog.setLogLevel(resultSet.getString("LOG_LEVEL")); - xadminapplicationlog.setThreadName(resultSet.getString("THREAD_NAME")); - xadminapplicationlog.setLogMessage(resultSet.getString("LOG_MESSAGE")); + xadminlog.setCreateDate(resultSet.getDate("CREATE_DATE")); + xadminlog.setCreateUserId(resultSet.getString("CREATE_USER_ID")); + xadminlog.setBusinessDate(resultSet.getDate("BUSINESS_DATE")); + xadminlog.setRtlLocId(resultSet.getInt("RTL_LOC_ID")); + xadminlog.setStoreName(resultSet.getString("STORE_NAME")); + xadminlog.setWkstnId(resultSet.getInt("WKSTN_ID")); + xadminlog.setLogLevel(resultSet.getString("LOG_LEVEL")); + xadminlog.setThreadName(resultSet.getString("THREAD_NAME")); + xadminlog.setLogMessage(resultSet.getString("LOG_MESSAGE")); + xadminlog.setLoggerCategory(resultSet.getString("LOGGER_CATEGORY")); - return xadminapplicationlog; + return xadminlog; } } diff --git a/src/main/java/com/example/services/xadmin/application/XadminApplicationLog.java b/src/main/java/com/example/services/xadmin/log/XadminLog.java similarity index 87% rename from src/main/java/com/example/services/xadmin/application/XadminApplicationLog.java rename to src/main/java/com/example/services/xadmin/log/XadminLog.java index 1f18c44..20ba196 100644 --- a/src/main/java/com/example/services/xadmin/application/XadminApplicationLog.java +++ b/src/main/java/com/example/services/xadmin/log/XadminLog.java @@ -1,8 +1,8 @@ -package com.example.services.xadmin.application; +package com.example.services.xadmin.log; import java.util.Date; -public class XadminApplicationLog { +public class XadminLog { private Date businessDate; private Date createDate; private String createUserId; @@ -12,6 +12,7 @@ public class XadminApplicationLog { private String threadName; private String logMessage; private String loggerCategory; + private String storeName; public Date getBusinessDate() { return businessDate; @@ -84,4 +85,12 @@ public class XadminApplicationLog { public void setLoggerCategory(String loggerCategory) { this.loggerCategory = loggerCategory; } + + public String getStoreName() { + return storeName; + } + + public void setStoreName(String storeName) { + this.storeName = storeName; + } }