找回密码
 立即注册

QQ登录

只需一步,快速开始

1818himis 悬赏达人认证 活字格认证

高级会员

98

主题

706

帖子

1840

积分

高级会员

积分
1840

微信认证勋章悬赏达人活字格认证

1818himis 悬赏达人认证 活字格认证
高级会员   /  发表于:2020-6-6 15:37  /   查看:13784  /  回复:14
1金币
本帖最后由 1818himis 于 2020-6-6 15:41 编辑

[神奇功能] 帮你打开活字格更神奇的功能:七十五,数据操作日志保存到数据表中
介绍了如何用C#开发的DLL文件将数据操作日志保存到数据表中,对于没有代码开发经验的朋友而言,即使照做出来还是一脸懵逼样的有木有,自从6.0版开启服务器命令,这里就换一个简单点的服务端命令方法来实现。

用到知识点:服务器命令的导入CSV、调用外部程序,定时服务,批处理语句
版本:6.0.4.0

1、首先参照上面的链接准备好“操作日志”表,或者点击下载附件工程文件也有,并对这个操作日志表做一个查询页面

2、对需要保存日志的数据库表进行设置:记录那些操作产生的日志,通常是添加、编辑、删除三种情况,这里以客户资料的增删改做演示。

3、在活字格服务器上设置操作日志的存储路径(不设置,用默认路径也行,自己知道在那里找到即可,建议设置专门的存放路径更方便查找)
应用程序发布后,日志将保存在上图“审计日志存储目录”文件夹下对应的“活字格数据操作日志_XXXX.csv”文件中,如下图,这里发布后程序叫“操作日志”,

4、在服务器上准备一个BAT批处理文件,代码与作用说明如下(forfiles命令具体用法请百度):
@echo off
#删除指定路径的活字格应用程序下的全部文件##
forfiles /p "F:\Forguncy\ForguncyAuditLog\操作日志"/s /c "cmd /c IF @ISDIR==FALSE del @path /f /q"

复制过去自行修改一下蓝色标识部分的操作日志所在的文件夹路径保存即可。(保存BAT文件的名称随意,路径为服务器上的任意位置,切记:是服务器上的位置,设计器与服务器分开情况要特别注意一下)

5、创建服务器端命令“D操作日志CSV导入”,勾上“私有,只能在其他服务端命令中调用此命令”
编辑服务端命令,选择命令:服务端导入导出CSV,参照下图设置即可:
导入模式推荐合并,基准列请全部勾选上,最后就是填写前面在服务器上面准备好的操作日志CSV文件完整路径

6、创建定时任务
建议在比较少人使用系统的时候执行,这里是每天凌晨0点执行一次,不需要太频繁,因为后面还添加了手工执行。
编辑定时任务
调用前面做好的服务端命令“D操作日志CSV导入”,将执行结果放到code供后面判断
“调用服务端命令”code=0执行成功,继续执行“程序调用命令”,“可执行程序路径”就是前面保存在服务器上的BAT文件完整路径。

7、为了测试服务端命令是否正常,同时也方便随时手工下载最新的日志,另外建了一个服务端命令“操作日志CSV导入”,里面的命令与设置跟定时任务一模一样,然后在查询页面放了一个按钮“下载日志”调用新的服务端命令。
大功告成,数据库操作日志就可以在前端随意查询,希望对格友们有些帮助!

附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

评分

参与人数 2金币 +666 满意度 +5 收起 理由
lml0126 + 5 很给力!
Eric.Liang + 666 很给力!谢谢老板的分享

查看全部评分

14 个回复

倒序浏览
unimaallan
金牌服务用户   /  发表于:2020-6-8 08:05:18
沙发
不错,好好学学
回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2020-6-8 18:16:42
板凳
分分钟给本帖加精~~
回复 使用道具 举报
mfkpie8
论坛元老   /  发表于:2020-8-8 23:41:46
地板
操作日志追溯功能很好!操作日志自动转存业务非常到位
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-8-10 16:59:12
5#
感谢大佬的分享~
回复 使用道具 举报
lml0126
高级会员   /  发表于:2020-8-26 08:50:09
6#
“操作日志”表为内建表时正常,转为SQL外连表后服务湍命令不执行了,是不是只能使用内联表才行呢?
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-8-26 09:54:23
7#
lml0126 发表于 2020-8-26 08:50
“操作日志”表为内建表时正常,转为SQL外连表后服务湍命令不执行了,是不是只能使用内联表才行呢?

不执行是什么意思,你要不把定时任务改成服务端命令,自己手动触发试试,浏览器F12看看有没有报错
回复 使用道具 举报
1818himis悬赏达人认证 活字格认证
高级会员   /  发表于:2020-8-26 10:18:03
8#
本帖最后由 1818himis 于 2020-8-26 10:19 编辑
lml0126 发表于 2020-8-26 08:50
“操作日志”表为内建表时正常,转为SQL外连表后服务湍命令不执行了,是不是只能使用内联表才行呢?

这里测试手动是正常的,定时的按理也是正常的,这个明天看看执行了没有(这里设置是每天一次哈),截图是刚刚添加的一条记录

你检查一下设置,和手工打开CSV文件看看是否有记录

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2020-8-26 15:58:33
9#
楼主可以按楼上大神说的测试一下哈,如果有问题可以发帖提问哦~
回复 使用道具 举报
lml0126
高级会员   /  发表于:2020-8-27 10:08:19
10#
感谢各位大神,的确是我的问题,调试发现ID没有设自增,没有建索引。吸取教训
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部