目前 Smartbi 的操作日志默认存储在知识库表“t_operationlog”中,可在“系统运维”>“操作日志”中查看,详情参考 操作日志 。
如果在项目中要统一管理操作日志,若需要将 Smartbi 的操作日志按指定的形式输出到指定的地方,可参考本示例开发扩展包,预期效果如下:
2.1. 在插件包中新建一个Java类com.log.takeover.log.LogSyncDemo,并且实现接口 smartbi.repository.IOperationLogReceiver。
/** * 添加操作日志 * @param logInfo * JSON对象:{userName: "", userAlias: "", type: "", detail: "", sessionId: "", * moreDetail: [type: "", name: "", value: "", order: ""]} * * JSON对象中type属性的类型比较多,具体信息可参考BI知识库表"t_operationlog_type" * moreDetail的type目前有"STRING"、"TEXT"、"SQL"这三种 */ @Override public void addOperationLog(JSONObject logInfo) { } /** * 配置日志保存类 * @param context 应用的上下文对象 */ @Override public void config(ServletContext context) throws IOException { } |
2.2. 编辑Smartbi服务器配置文件smartbi-config.xml,如下图红色框所示。在已有节点smartbi下面新增子节点operationlog,接着在节点operationlog下新增子节点preserver-class,其属性值为 LogSyncDemo 类的全名 com.log.takeover.log.LogSyncDemo。
2.3. gif演示示例的源码请参考:操作日志重定向.rar