【splunk】
--Splunk—云计算&大数据时代的超级日志分析和监控利器
https://blog.csdn.net/enweitech/article/details/51330610
【log4j】
--Log4j日志在java项目中的使用(附工程源码)
https://blog.csdn.net/wushiwude/article/details/54312319
--java web项目中加入log4j
https://blog.csdn.net/whh743/article/details/53584666
--log4j的使用与java中properties配置文件加载
https://blog.csdn.net/u013516035/article/details/41686627
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; private static final Log logger = LogFactory.getLog(HomeController.class); 或 import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(HomeController.class); 打印日志方式1: import java.text.MessageFormat; logger.info(MessageFormat.format(logStr+"token={0},url={1},servletPath={2}.",token,request.getRequestURI(),request.getServletPath())); 打印日志方式2: logger.info(String.format("打印日志%s,%s", ss,dd)); 打印日志方式3: logger.info("interface A001 token= {}", token);
【SLF4J与Logback简介】
--org.slf4j.Logger
-- 如何启用设置org.slf4j.Logger打印并输出日志
https://blog.csdn.net/qq_26115733/article/details/70560934
//
SLF4J——Simple Logging Facade For Java
它是一个针对于各类Java日志框架的统一Facade抽象。Java日志框架众多——常用的有java.util.logging,
log4j,
logback,
commons-logging,
Spring框架使用的是Jakarta Commons Logging API (JCL)。而SLF4J定义了统一的日志抽象接口,而真正的日志实现则是在运行时决定的——它提供了各类日志框架的binding。
//
Logback是log4j框架的作者开发的新一代日志框架,它效率更高、能够适应诸多的运行环境,同时天然支持SLF4J。
【日志脱敏处理】
import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import org.apache.log4j.Logger; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.ValueFilter; /** * 字段脱敏处理 * */ public class Demo { public static Logger logger = Logger.getLogger(Demo.class); private static ValueFilterExtend valueFilterExtend; static{ //需要脱敏的参照规则 String referenceJsonStr = "{\"4,4\":[\"bankCard\",\"idntityCard\"],\"3,5\":[\"mobile\"],\"4,0\":[\"email\"]}"; Map<String, Map<String, Integer>> initReferenceMap = new HashMap<>();//初始化后的参照物map JSONObject jsonObject = JSON.parseObject(referenceJsonStr); String preffixSuffixStr = null; String[] preffixSuffixArray = null;//数组 Map<String, Integer> tempReferenceMap = null;//参照物map //遍历参照物json对象 for (Entry<String, Object> entry : jsonObject.entrySet()) { preffixSuffixStr = entry.getKey(); preffixSuffixArray = preffixSuffixStr.split(","); tempReferenceMap = new HashMap<String, Integer>(); tempReferenceMap.put("preffix", Integer.valueOf(preffixSuffixArray[0])); tempReferenceMap.put("suffix", Integer.valueOf(preffixSuffixArray[1])); for (Object v : (JSONArray)entry.getValue()){ initReferenceMap.put(String.valueOf(v), tempReferenceMap); } } System.out.println("输出initReferenceMap.size()="+initReferenceMap.size()); if(initReferenceMap.size() > 0){ valueFilterExtend = new ValueFilterExtend(initReferenceMap); } } public static void main(String[] args) { JSONObject jsonObject=new JSONObject(); jsonObject.put("bankCard", "32343413412341234234"); jsonObject.put("mobile", "18799998888"); //判断参照物是否存在 Boolean bool=valueFilterExtend.isReferenceObjectMapEmpty(); System.out.println("输出bool="+bool); if(bool){ String str=JSON.toJSONString(jsonObject,valueFilterExtend);//特定属性脱敏处理 System.out.println("输出str="+str); } } /** * * 内部类ValueFilterExtend,实现了com.alibaba.fastjson.serializer.ValueFilter接口 */ static class ValueFilterExtend implements ValueFilter { Map<String,Map<String, Integer>> referenceMap = new HashMap<>(); public ValueFilterExtend() { } ValueFilterExtend(Map<String,Map<String, Integer>> referenceMap) { this.referenceMap = referenceMap; } /** * 判断参照物map是否为空 * @return */ public boolean isReferenceObjectMapEmpty(){ return referenceMap != null && referenceMap.size() != 0; } /** * 重写ValueFilter接口方法process() */ @Override public Object process(Object targetObject, String name, Object value) { System.out.println("调用process方法...targetObject="+targetObject.toString()); String val = String.valueOf(value); Map<String, Integer> map = referenceMap.get(name); return StringUtil.dealString(val, map.get("preffix"), map.get("suffix"), '*');//对字段的前几位和后几位进行脱敏处理 } } }