Commit 62f35eef by zhangkb

添加标签日志

parent 98b214c9
......@@ -17,6 +17,8 @@ import org.springframework.web.bind.annotation.RestController;
import com.keymobile.auth.common.security.GrantedAuthHelper;
import com.keymobile.tagmanager.exception.TagNotExistException;
import com.keymobile.tagmanager.logging.LogConstants;
import com.keymobile.tagmanager.logging.LogManager;
import com.keymobile.tagmanager.model.ExtTag;
import com.keymobile.tagmanager.model.Page;
import com.keymobile.tagmanager.model.SysTag;
......@@ -62,6 +64,7 @@ public class TagCtrl {
String companyOrgId = tagService.getCompanyOrgIdByUserOrgId(org);
tag.setProDept(companyOrgId);
LogManager.logInfo(LogConstants.CTX_OPTTAG, "新增/修改标签成功");
//调用新增或者修改标签接口
return tagService.addOrUpdateTag(parentId, tag, userName);
}
......@@ -71,6 +74,7 @@ public class TagCtrl {
public void deleteTag(@RequestParam(value = "tagId") String tagId) throws Exception {
String userName = UserInfoUtils.getUserName();
tagService.deleteTag(tagId, userName);
LogManager.logInfo(LogConstants.CTX_OPTTAG, "删除标签成功");
}
@ApiOperation(value = "存在节点", notes = "存在节点")
......@@ -247,6 +251,11 @@ public class TagCtrl {
public void shareTags(@RequestBody List<String> tagIds,
@RequestParam String tagOpenStatus) throws Exception {
tagService.shareTags(tagIds,tagOpenStatus);
if("0".equals(tagOpenStatus)) {
LogManager.logInfo(LogConstants.CTX_OPTTAG, "取消分享标签");
}else {
LogManager.logInfo(LogConstants.CTX_OPTTAG, "分享标签");
}
}
//author:zhangkb time:2020-1-16 desc:标签分析接口
......@@ -260,6 +269,7 @@ public class TagCtrl {
@GetMapping("/exportTagAnalysis")
public int exportTagAnalysis(@RequestParam String dataType,@RequestParam String type,
HttpServletResponse response)throws Exception{
LogManager.logInfo(LogConstants.CTX_OPTTAG, "导出标签分析");
return tagExportService.exportTagAnalysisExcel(dataType, type, response);
}
......
......@@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.keymobile.auth.common.security.GrantedAuthHelper;
import com.keymobile.tagmanager.logging.LogConstants;
import com.keymobile.tagmanager.logging.LogManager;
import com.keymobile.tagmanager.model.Page;
import com.keymobile.tagmanager.service.TagFileService;
import com.keymobile.tagmanager.util.UserInfoUtils;
......@@ -38,6 +40,7 @@ public class TagFileCtrl {
String userName = UserInfoUtils.getUserName();
String userId = UserInfoUtils.getUserId();
String deptIdPath = /**UserInfoUtils.getDataRoleOrg()*/String.valueOf(GrantedAuthHelper.getUserOrg());
LogManager.logInfo(LogConstants.CTX_OPTFILETAG, "导入标签元数据");
return tagExportService.importTagMetadataExcel(userName, userId, deptIdPath,
idPath, dimensionType, tagType, file);
}
......@@ -47,6 +50,7 @@ public class TagFileCtrl {
public int exportTagMeta(@RequestParam("idPath") String idPath,
@RequestParam("dimensionType") String dimensionType,
@RequestParam("tagType") String tagType,HttpServletResponse response) {
LogManager.logInfo(LogConstants.CTX_OPTFILETAG, "导出标签元数据");
return tagExportService.exportTagMetadataExcel(idPath, dimensionType, tagType, response);
}
......@@ -56,6 +60,7 @@ public class TagFileCtrl {
@RequestParam(required = false , value = "deptIdPath") String deptIdPath,
@RequestParam(required = false , value = "isSys") String isSys) {
deptIdPath = /**UserInfoUtils.getDataRoleOrg()*/String.valueOf(GrantedAuthHelper.getUserOrg());
LogManager.logInfo(LogConstants.CTX_OPTFILETAG, "导出标签");
return tagExportService.exportExcel(deptIdPath, isSys, response);
}
......@@ -65,6 +70,7 @@ public class TagFileCtrl {
String userName = UserInfoUtils.getUserName();
String userId = UserInfoUtils.getUserId();
deptIdPath = /**UserInfoUtils.getDataRoleOrg()*/String.valueOf(GrantedAuthHelper.getUserOrg());
LogManager.logInfo(LogConstants.CTX_OPTFILETAG, "导入标签");
return tagExportService.importExcel(userName, userId, deptIdPath, file);
}
......@@ -104,6 +110,7 @@ public class TagFileCtrl {
}
tagExportService.exportSystem(systemIds, request, response);
}
LogManager.logInfo(LogConstants.CTX_OPTFILETAG, "导出系统");
}
//----------------------以下为导入系统的时候
......
......@@ -10,6 +10,8 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.keymobile.auth.common.security.GrantedAuthHelper;
import com.keymobile.tagmanager.logging.LogConstants;
import com.keymobile.tagmanager.logging.LogManager;
import com.keymobile.tagmanager.model.TagRelation;
import com.keymobile.tagmanager.service.TagRelService;
import com.keymobile.tagmanager.util.UserInfoUtils;
......@@ -40,12 +42,14 @@ public class TagRelCtrl {
if(tagRelService.tagRelExist(sourceId, targetId)) {
throw new Exception("the tag relation is exist");
}
LogManager.logInfo(LogConstants.CTX_OPTTAGREL, "新增标签关系");
return tagRelService.addTagRel(sourceId, targetId, userId, org);
}
@ApiOperation(value = "删除标签关系", notes = "删除标签关系")
@PostMapping(value = "/deleteTagRel")
public void delete(@RequestParam String id) {
LogManager.logInfo(LogConstants.CTX_OPTTAGREL, "删除标签关系");
tagRelService.deleteTagRel(id);
}
......
package com.keymobile.tagmanager.logging;
public interface LogConstants {
public static final String CTX_OPTTAG = "tagManager.OPTTAG";
public static final String CTX_OPTFILETAG = "tagManager.OPTFILETAG";
public static final String CTX_OPTTAGREL = "tagManager.OPTTAGREL";
}
package com.keymobile.tagmanager.logging;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogManager {
public static void logTrace(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isTraceEnabled()) {
logger.trace(message, e);
}
}
public static void logTrace(String context, String message) {
logTrace(context, null, message);
}
public static void logDebug(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isDebugEnabled()) {
logger.debug(message);
}
}
public static void logInfo(String context, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isInfoEnabled()) {
logger.info(message);
}
}
public static void logWarning(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isWarnEnabled()) {
logger.warn(message, e);
}
}
public static void logWarning(String context, String message) {
logWarning(context, null, message);
}
public static void logError(String context, Throwable e, String message) {
Logger logger = LoggerFactory.getLogger(context);
if (logger.isErrorEnabled()) {
logger.error(message, e);
}
}
public static void logError(String context, String message) {
logError(context, message);
}
}
package com.keymobile.tagmanager.logging;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;
import org.slf4j.MDC;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import javax.servlet.*;
import java.io.IOException;
@Component
public class MdcLogEnhancerFilter implements Filter {
@Override
public void destroy() {
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
{
MDC.put("user", getUser());
MDC.put("session", getSession());
filterChain.doFilter(servletRequest, servletResponse);
}
private String getUser() {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String userName = "NO_USER";
if (auth != null) {
userName = auth.getName();
}
return userName;
}
private String getSession() {
RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
String session = "NO_SESSION";
if (attrs != null) {
session = attrs.getSessionId();
}
return session;
}
}
......@@ -44,9 +44,7 @@ public interface RepoServiceClient {
@RequestParam String idPath,
@RequestParam String tagType,
@RequestParam String dimensionType,
@RequestParam(required = false) String keyword,
@RequestParam(defaultValue = "1") int pageNum,
@RequestParam(defaultValue = "10") int pageSize);
@RequestParam(required = false) String keyword);
@PostMapping(value = "/rest/metadata/getByNamePathAndClass")
public Map<String,Object> getMetaByNamePathAndClass(@RequestParam String claz,
......
......@@ -137,7 +137,7 @@ public class TagFileService {
Map<Long, Set<String>> systemTagMap = GrantedAuthHelper.getDataPrivileges();
//获取标签元数据信息
List<Map<String,Object>> content = repoService.getByTagByPrivileges(systemTagMap,
null, idPath, tagType, dimensionType, "", 1, 10);
null, idPath, tagType, dimensionType, "");
//新建用于过滤content权限list
List<Map<String,Object>> privilegeContent = new ArrayList<>();
......@@ -155,8 +155,7 @@ public class TagFileService {
Set<String> tags = systemTagMap.get(Long.valueOf(sys));
for(String usrTag : tags) {
List<Map<String,Object>> tagContent = repoService.getByTagByPrivileges(
systemTagMap, null, usrTag, "1", "1", "",
1, 10);
systemTagMap, null, usrTag, "1", "1", "");
List<String> idList = new ArrayList<>();
for(Map<String,Object> map : tagContent) {
idList.add(map.get("_id").toString());
......
......@@ -803,8 +803,7 @@ public class TagService {
//根据标签id获取标签
Tag tag = this.getTagById(usrTag);
List<Map<String,Object>> tagContent = repoService.getByTagByPrivileges(
systemTagMap, null, tag.getIdPath(), "1", "1", "",
pageNum, pageSize);
systemTagMap, null, tag.getIdPath(), "1", "1", "");
List<String> idList = new ArrayList<String>();
for(Map<String,Object> map : tagContent) {
idList.add(map.get("_id").toString());
......@@ -840,8 +839,7 @@ public class TagService {
//根据标签id获取标签
Tag tag = this.getTagById(usrTag);
List<Map<String,Object>> tagContent = repoService.getByTagByPrivileges(
systemTagMap, modelPath, tag.getIdPath(), "1", "1", "",
pageNum, pageSize);
systemTagMap, modelPath, tag.getIdPath(), "1", "1", "");
List<String> idList = new ArrayList<String>();
for(Map<String,Object> map : tagContent) {
idList.add(map.get("_id").toString());
......@@ -877,8 +875,7 @@ public class TagService {
if(!systemTagMap.isEmpty()) {
//获取传入的标签关联的元数据
List<Map<String,Object>> content = repoService.getByTagByPrivileges(systemTagMap,
null, tag.getIdPath(), tag.getTagType(), tag.getDimensionType(), "",
1, 10);
null, tag.getIdPath(), tag.getTagType(), tag.getDimensionType(), "");
if(!content.isEmpty()) {
//比较标签关联的元数据所属系统跟用户被授予的系统是否一致
for(Map<String,Object> mData : content) {
......@@ -898,7 +895,7 @@ public class TagService {
Tag uTag = this.getTagById(usrTag);
List<Map<String,Object>> tagContent = repoService.
getByTagByPrivileges(systemTagMap, null,
uTag.getIdPath(), "1", "1", "", 1, 10);
uTag.getIdPath(), "1", "1", "");
List<String> idList = new ArrayList<>();
for(Map<String,Object> map : tagContent) {
idList.add(map.get("_id").toString());
......
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<logger name="org.springframework.web" level="INFO" />
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<springProfile name="test">
<!-- 注意这里一定要放到springProfile里, 否则在你本机执行的时候还是会去找相应的文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>logs/dataCatalog.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<maxHistory>1</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>500</queueSize>
<appender-ref ref="FILE" />
</appender>
</springProfile>
<springProfile name="dev">
<!-- 注意这里一定要放到springProfile里, 否则在你本机执行的时候还是会去找相应的文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>logs/dataCatalog.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<maxHistory>1</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>500</queueSize>
<appender-ref ref="FILE" />
</appender>
</springProfile>
<springProfile name="pro">
<!-- 注意这里一定要放到springProfile里, 否则在你本机执行的时候还是会去找相应的文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>logs/metaA.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
<totalSizeCap>30GB</totalSizeCap>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<queueSize>500</queueSize>
<appender-ref ref="FILE" />
</appender>
</springProfile>
<springProfile name="dev">
<root level="INFO">
<appender-ref ref="consoleAppender" />
<appender-ref ref="asyncFileAppender" />
</root>
</springProfile>
<springProfile name="pro">
<root level="INFO">
<appender-ref ref="asyncFileAppender" />
</root>
</springProfile>
<springProfile name="test">
<root level="INFO">
<appender-ref ref="asyncFileAppender" />
</root>
</springProfile>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<springProperty name="spring.datasource.driverClassName" source="spring.datasource.driverClassName"/>
<springProperty name="spring.datasource.url" source="spring.datasource.url"/>
<springProperty name="spring.datasource.username" source="spring.datasource.username"/>
<springProperty name="spring.datasource.password" source="spring.datasource.password"/>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %X{user} %X{session} %-5level %logger{5} - %msg%n</pattern>
</encoder>
</appender>
<appender name="db" class="ch.qos.logback.classic.db.DBAppender">
<connectionSource
class="ch.qos.logback.core.db.DriverManagerConnectionSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://192.168.0.192:3306/cgn2_dev</url>
<user>test</user>
<password>test</password>
</connectionSource>
</appender>
<logger name="tagManager.OPTTAG">
<appender-ref ref="db" />
</logger>
<logger name="tagManager.OPTFILETAG">
<appender-ref ref="db" />
</logger>
<logger name="tagManager.OPTTAGREL">
<appender-ref ref="db" />
</logger>
<root level="INFO">
<appender-ref ref="stdout" />
</root>
</configuration>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment