From 6b0971b690de6e50d43b81799ba0378013455cdb Mon Sep 17 00:00:00 2001 From: ludc Date: 星期四, 09 十一月 2023 21:27:29 +0800 Subject: [PATCH] 提交代码 --- Source/UBCS/ubcs-ops/ubcs-log/src/main/java/com/vci/ubcs/core/log/service/impl/LogSystemServiceImpl.java | 158 +++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 124 insertions(+), 34 deletions(-) diff --git a/Source/UBCS/ubcs-ops/ubcs-log/src/main/java/com/vci/ubcs/core/log/service/impl/LogSystemServiceImpl.java b/Source/UBCS/ubcs-ops/ubcs-log/src/main/java/com/vci/ubcs/core/log/service/impl/LogSystemServiceImpl.java index ce126f2..f3f8778 100644 --- a/Source/UBCS/ubcs-ops/ubcs-log/src/main/java/com/vci/ubcs/core/log/service/impl/LogSystemServiceImpl.java +++ b/Source/UBCS/ubcs-ops/ubcs-log/src/main/java/com/vci/ubcs/core/log/service/impl/LogSystemServiceImpl.java @@ -2,16 +2,25 @@ import com.vci.ubcs.core.log.service.ILogSystemService; import com.vci.ubcs.log.entity.SystemLog; +import com.vci.ubcs.omd.cache.EnumCache; +import com.vci.ubcs.omd.enums.EnumEnum; import com.vci.ubcs.resource.bo.FileObjectBO; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import javax.xml.crypto.Data; import java.io.File; +import java.io.IOException; +import java.nio.file.FileSystems; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.attribute.BasicFileAttributes; import java.rmi.ServerException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; /** * 鏈湴绯荤粺鏃ュ織 @@ -25,55 +34,136 @@ * 鍚勪釜鏈嶅姟瀛樻斁鐨勭殑鐖惰矾寰� */ private final String parentPath = "/data1/ubcs/ubcs-server"; + + /** + * 鍚勪釜鏈嶅姟鐨勬棩蹇楀叿浣撶殑鐩綍璺緞 + */ //@Value("#{'${ip-whitelist.ip}'.split(',')}") private List<String> serviceDirNames = new ArrayList<>(Arrays.asList("/ubcs_code/target/log","/ubcs_omd/target/log","/ubcs_system/target/log")); /** * 鑾峰彇鏈湴鏃ュ織鍒楄〃 + * @param logParentPath + * @return */ @Override - public List<SystemLog> getSystemLogList() { - serviceDirNames.stream().forEach(serviceDirName->{ - File file = new File(parentPath+serviceDirName); - - if(file.isDirectory()){ - + public List<SystemLog> getSystemLogList(String logParentPath) { + List<SystemLog> systemLogs = new ArrayList<>(); + // 涓嶄负绌鸿鏄庢槸鍔犺浇褰撳墠杩欎釜鏈嶅姟璺緞涓嬬殑鏃ュ織鏂囦欢 + if(Func.isNotEmpty(logParentPath)){ + File file = new File(logParentPath); + if (file.isDirectory()) { File[] files = file.listFiles(); - - for(File f : files){ - - if(f.isDirectory()){ - - //readAllFiles(f.getAbsolutePath()); - - }else{ - - System.out.println(f.getName()); - - } - - } - - }else{ - - System.out.println(file.getName()); - + Arrays.stream(files).forEach(item->{ + // 缁勫缓鏃ュ織鏂囦欢瀵硅薄 + SystemLog systemLog = new SystemLog(); + systemLog.setLogName(item.getName()); + systemLog.setLogType(getLogType(item.getName())); + systemLog.setCreateTime(getLastModifiedOrCreatTime(false,logParentPath)); + systemLog.setLastmodifier(getLastModifiedOrCreatTime(true,logParentPath)); + systemLog.setLogPath(logParentPath); + String serviceId = getServiceId(logParentPath); + systemLog.setServiceId(serviceId); + systemLog.setServiceName(getServiceName(serviceId)); + systemLogs.add(systemLog); + }); } - - }); - - return null; + }else { + serviceDirNames.stream().forEach(serviceDirName->{ + File file = new File(parentPath+serviceDirName); + SystemLog systemLog = new SystemLog(); + systemLog.setLastmodifier(getLastModifiedOrCreatTime(true,parentPath+serviceDirName)); + systemLog.setCreateTime(getLastModifiedOrCreatTime(false,parentPath+serviceDirName)); + systemLog.setLogPath(parentPath+serviceDirName); + String serviceId = getServiceId(logParentPath); + systemLog.setServiceId(serviceId); + systemLog.setServiceName(getServiceName(serviceId)); + systemLogs.add(systemLog); + }); + } + return systemLogs; } + /** + * 鑾峰彇鏂囦欢鏈�鍚庝慨鏀规垨鑰呭垱寤烘椂闂� + * @param isModifier + * @return + */ + private String getLastModifiedOrCreatTime(boolean isModifier,String pathStr) { + Path path = FileSystems.getDefault().getPath(pathStr); + String date = ""; + try { + BasicFileAttributes attr = Files.readAttributes(path, BasicFileAttributes.class); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + // 鏄幏鍙栨渶鍚庝慨鏀规椂闂� + if(isModifier){ + date = dateFormat.format(new Date(attr.lastModifiedTime().toMillis())); + }else { + date = dateFormat.format(new Date(attr.creationTime().toMillis())); + } + } catch (IOException e) { + throw new ServiceException("Error reading file date attributes: " + e.getMessage()); + } + return date; + } + + /** + * 鑾峰彇鏃ュ織绫诲瀷 + * @param fileName + * @return + */ + private String getLogType(String fileName){ + //鍒ゆ柇鏃ュ織鐨勭殑绫诲瀷 + if (fileName.contains("error")) { + return "Error"; + } else if (fileName.contains("info")) { + return "Info"; + } else if (fileName.contains("warning")) { + return "Warning"; + } else { + return "Unknown"; + } + } + + /** + * 鑾峰彇鏈嶅姟ID + * @param servciePath + * @return + */ + private String getServiceId(String servciePath){ + String[] parts = servciePath.split("/"); + String extractedString = parts[parts.length - 2]; + return extractedString; + } + + /** + * 鑾峰彇鏈嶅姟鍚嶇О + * @param serViceId + * @return + */ + private String getServiceName(String serViceId){ + return EnumCache.getValue(EnumEnum.SERCIVE_NAME_ROLE, serViceId); + } + + /** + * 涓嬭浇鏃ュ織鏂囦欢 + * @param condition 鏌ヨ鏉′欢map + * @return + * @throws ServerException + */ @Override public FileObjectBO downloadLogByServiceNameAndFileName(Map<String, String> condition) throws ServerException { return null; } + /** + * 鍒犻櫎鏃ュ織鏂囦欢 + * @param condition 涓婚敭闆嗗悎 + * @throws ServerException + */ @Override public void deleteLogFile(Map<String, String> condition) throws ServerException { } - } -- Gitblit v1.9.3