当前位置: 首页 > 网络应用技术

如何在Django中的日志中输出(2023年最新分享)

时间:2023-03-06 13:27:58 网络应用技术

  简介:今天,首席CTO注释要与您分享如何输出Django的相关内容。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  单击部署状态页面以查看日志。日志页将打开。下一张图片是日志的输出页面。

  简单而时尚的小日志页面出现了,您真的想要一个终端吗?

  首先很难得到这一需求。因为在服务器上,我们查看日志,通常是tail -f查看屏幕。如何在网页上实现tailf的效果?

  稍后,考虑一下是可行的。在前端编写一个JS计时器,并不断将AJAX请求发送到背景,并每次取出日志。检索shell脚本,进行日志,并确定日志文件是否存在,是否为空以及数据的启动位置返回shell。尴尬地编写一堆壳命令。考虑到解决方案后,实现过程相对简单。我的开发环境基于Python Django框架,现在显示了此功能的实现过程。

  Django部分

  单击日志的链接后,将调整视图中的AJXGetLog方法。此方法需要两个参数,即项目ID和主机ID。这两个参数主要用于确定日志文件的位置。该方法返回行号。

  execCommand是包装subprocess.popen的工具函数。备份列表分别是标准输出,错误输出和壳返回代码

  DEF AJXGETLOG(请求,PID,HID):

  project = project.objects.gets(pk = pid)

  主机= host.objects.get(pk = hid)

  scriptName ='%s%s%s'%(base_path,'get_log.sh')

  res = execcommand

  #如果错误输出不是空的,请直接返回错误输出

  如果不是Res [1]:

  尝试:

  #RES [0]是线号,如果它大于20行,请从当前20行开始输出。对于用户体验,您知道

  如果int(res [0])20:

  线= int(res [0])-20

  如果int(res [0])== 0:

  线= 1

  返回渲染(请求,'logs.html',{'pid':pid,'hid':hid':hid,'line':line})

  除例外,E:

  打印e

  返回httpresponse(e)

  别的:

  返回httpresponse(res [1])

  一些首席HTML负责人编写了AJAX请求,传递给背景以获取日志内容,并传达三个参数项目ID,主机ID和行号。背景将返回行号的相应行内容。此方法代码如下:

  DEF AJXGETLOGHANDLE(请求,PID,HID,LID):

  project = project.objects.gets(pk = pid)

  主机= host.objects.get(pk = hid)

  scriptName ='%s%s%s'%(base_path,'get_log.sh')

  res = execcommand

  如果不是Res [1]和Res [0] .Strip():

  返回httpresponse(res [0])

  别的:

  返回httpresponse(500)

  在Python中,您可以将Python的安装环境添加到系统变量(我记得自动添加,您可以直接在DOS下运行Python)

  至于django,您可以直接运行django-admin startproject mysite2(django-admin无.py),而没有python django-admin.py startproject mySite 2(如果需要多变的)

  如何实现背景Django系统操作日志

  首先构建管理日志表。

  然后构建负责日志表操作的类

  我的日志表就是这样

  日志ID

  管理员ID

  管理员名称

  操作类型

  操作名称(执行什么)

  时间

  IP地址

  评论

  ----------------------------------------------------------------------------------------------------------------------------------------

  当然,根据您的需要,您可以构建一个更复杂的日志表。

  我有一个日志,其中有一个静态方法。

  当您需要记录日志时,我会打电话给

  eventlog.logevent(...)

  ------------------------------------------------------------------------------------------------------------------------------------------------------------

  至于节目,这很简单。您如何检查,可以使用最简单的绑定到datagrid

  结论:以上是Django相关内容的相关内容,即首席CTO注释由Django日志中的相关内容输出总结。希望它对您有所帮助!如果您解决了问题,请与更多关心此问题的朋友分享?