作者回复: 你这个不光是技术问题,也是个治理问题,所以不能光用技术解决,还需要研发流程和架构治理配合,日志治理是架构治理的一部分,比方说对开发人员记录日志是否有规范,培训,是否有评审机制等。 技术上,一般日志入ES之前,前置都有一个日志队列(比方说kafka),这是一个可以做日志收口的点,你就可以做监控治理,比如每个app写入了多少日志,是否合理,敏感数据是否已经清洗,不合理的日志你可以禁入es,限期整改等等。如果用kafka集群做日志队列的话,它就是一个大缓冲,性能一般不成问题,大厂每天缓冲处理超过上T甚至几十T日志都属正常。
作者回复: 对,有好的实践可以分享给大家。
作者回复: 审计日志一般和重要的业务操作有关,可以手工埋点,实际也不是特别费事。当然,你可以考虑Spring AOP方式截获业务操作自动埋点,比如对Service或者Repository层通过aop截获写审计日志。
作者回复: 没有完全理解你的需求,能再解释详细一点?
作者回复: StructLog4只是在SLF4J上的一层薄薄的封装,SLF4J也只是一个Logging Facade,性能损耗具体要看底层所使用的Logging库,比如logback,log4j等,这些都是很普通常用的日志库。
作者回复: 这个审计日志底层就是用的slf4j/logback,默认应该是同步的,具体要看你配置的logback的appender,有些appender是支持异步的。