开发一个考试系统——增加日志记录器,记录用户的操作

130 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情

上一篇我们对人员管理的界面上的按钮定义了权限,实现了只有具有权限的人才能修改。这一篇考虑到对数据的操作要有记录,做一个日志记录器,进行日志的记录。

用户的操作被誉为行为分析最有价值的东西,记录下来是很有必要的。

这个项目的链接是:https://github.com/Amor122/MyTest.git

我已经设置了公开权限,大家都可以访问,项目每天的进度基本上是和文章更新一致的,或者略快于文章,我也是边写边发的,有些代码在后续版本说不定就更改了。代码的字数意义不大,有需要的都可以去项目上直接看,这里我都换成了图片。

一、     实现步骤

(一)      配置

配置在settings文件中进行。整体格式是以字典形式进行的。

version代表版本信息

disable_existing_logger表示关闭现有的日志

下面是日志的四大组件

filters 过滤器,用于设置哪些类型的日志需要被记录

formatters 格式器,用于设置日志的记录格式

handlers 处理器,用于配置日志的处理方式,如下图所示的两种一种是在我们的显示框打印信息,一种是以文件记录,处理器会选用格式器。

loggers记录器,用于记录日志,记录器会选择过滤器和处理器。

使用的时候就是  :

     logging.getLogger('mylog').error(msg)

image.png

image.png

image.png  

我们选用文件形式配置日志,并在我们的操作过程中使用mylog记录器来保存日志到文件,为便于管理,我定义了一个函数来统一操作。

image.png

 

这个函数主要是先判断请求里session是否齐全,再把操作的模型的工号id和用户名取出来,做成信息,几个数据共同组合成msg交给日志管理器去记录。

 

使用时只需要在相关的操作前记录上即可。

 

日志记录如下

image.png

文件记录器的效果毕竟有限,如果需要详细分析用户的操作信息,更为方便的是定义一个日志用的模型,将其记录到数据库中,调用也会更加方便。 代码的详细变动信息请查看提交记录。