Fuguo-log
来自ling
目录
模块功能与描述
负责基础模块的日志功能,包含,日志记录(文件,数据库),日志监控,日志实时查看,日志文件管理,浏览,下载等功能,审计日志
- 菜单路径:log.file.FileReaderMain.ling 日志文件下载,日志查看 本功能菜单功能还没完善
- 菜单路径:loglog.database.view.lingLogmanager.ling 存放在数据库中的审计日志查询
系统的结构
表和model设计说明
- LingLog base_log 存储日志到数据库
- LogPath base_Log_Common_Path 日志实时查看,日志文件管理,浏览,下载等功能模块收藏的常用日志目录
系统常量
- VATLogDef
- PlLogDef
dao设计说明
server设计说明
view设计说明
utils设计说明
- LogUtils
- public static Log getLog(Class<?> clazz) 获取默认日志类别,和log4j类似,带groupId,relationId,processId,businessId扩展
- public static Log getLog(String name)
- public static Log getDataBaseLog(Class<?> clazz) 获取存储到base_log表的日志类型,和log4j类似,带groupId,relationId,processId,businessId扩展
- public static Log getDataBaseLog(String name)
- public static Log getFileLog(Class<?> clazz,FileLogProcess process)
- public static Log getFileLog(Class<?> clazz,String path)
- public static Log getFileLog(String name,String path)
- 获取msg中的日志内容,最大长度为maxLength public static String getMsg(Object msg,int maxLength)
- 获取msg中的日志内容 public static String getMsg(Object msg)
- LogUtils使用示例 可以参考LogTest中单元测试
Log log=LogUtils.getLog(LogTest.class); log.setGroupId("模块"); log.setRelationId("业务类型"); log.setProcessId(System.currentTimeMillis()+"");//一般就是当前时间,用于区分多批日志中日志属于那一批 log.setBusinessId("业务主键"); log.debug("1111111111111"); log.debug(null); log.error("1111111111111"); log.error(new BusinessException("11111"));
- GroupId
"业务类型是我,在FileLogProcess类型中会在根目录下创建以GroupId的文件夹来区分日志" - RelationId
"一般用于存储这批数据的特征,比如子模块名称或者当查询一批数据并处理,那么这里存储查询条件"
日志的三个切入方式/层面
业务相关代码中写入日志
- 耦合度高
spring aop切入
- 耦合度低,但如果一个业务有多个点需要切入,就显得比较麻烦
model层切入
请参考EntityOperation的实现
日志监控模块
审计日志
自动审计日志使用
- 需要记录新增,修改,删除的entity实现LogInfo toLogString中实现雷士tostring的功能.数据变化会根据前后2条相同businessid的数据进行比较,比较的变化结果是否有意义,由toLogString的详细程度决定
- 原理:
- BusinessLoggerAspect中会记录相应日志到数据库
自定义审计日志步骤
- 实现一个类似LoggerAspect的功能
- 在此类中使用public static Log getDataBaseLog(Class<?> clazz)或public static Log getDataBaseLog(String name)调用基础日志模块
- 要审计的model最好实现toString()方法
- log.info(model.toString())
日志文件浏览模块
- 实现了类似window的文件浏览功能 更多请参考可视化文档管理
- 能以特定编码打开文件
- 能指定显示文件中指定行数
- 是实时日志文件内容监控的临时替代方案
- 能收藏常用日志文件夹,便于下次快速打开
- 后台日志监控模块还没完成
后台日志实时监控模块
修改日志
log事务没有隔离问题
- 事务中设置为execution(* com.deloitte.tms.pl.log.service.LogService.*(..))
- LogServiceImpl中指定
@Resource(name=LogDao.BEAN_ID) LogDao logDao;
相关文档
log.properties 日志监控相关日志配置文件
[log4j重定向stdout和stderr到log文件|http://seeallsea.iteye.com/blog/2117458]
增值税系统日志实施
请参考tms系统日志实施