日志查询

This commit is contained in:
caoqianming 2021-08-17 09:47:14 +08:00
parent eda2c23659
commit e040b14860
3 changed files with 45 additions and 15 deletions

View File

@ -210,6 +210,16 @@ export const asyncRoutes = [
}
]
},
{
path: 'docs-link2',
component: Layout,
children: [
{
path: process.env.VUE_APP_BASE_API + '/swagger/',
meta: { title: 'Swagger文档', icon: 'link', perms: ['dev_docs'] }
}
]
},
{
path: 'admin-link',
component: Layout,

View File

@ -35,5 +35,5 @@ class Equipment(CommonBModel):
verbose_name_plural = verbose_name
def __str__(self):
return self.name + '-' + self.name
return self.number + '-' + self.name

View File

@ -1,5 +1,6 @@
from django.shortcuts import render
import psutil
from rest_framework import response
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated
@ -7,6 +8,8 @@ from rest_framework.viewsets import ViewSet
from django.conf import settings
import os
from rest_framework import serializers, status
from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema
# Create your views here.
class ServerInfoView(APIView):
@ -29,8 +32,23 @@ class ServerInfoView(APIView):
ret['disk']['percent'] = disk.percent
return Response(ret)
def get_file_list(file_path):
dir_list = os.listdir(file_path)
if not dir_list:
return
else:
# 注意这里使用lambda表达式将文件按照最后修改时间顺序升序排列
# os.path.getmtime() 函数是获取文件最后修改时间
# os.path.getctime() 函数是获取文件最后创建时间
dir_list = sorted(dir_list,key=lambda x: os.path.getmtime(os.path.join(file_path, x)), reverse=True)
# print(dir_list)
return dir_list
class LogView(APIView):
@swagger_auto_schema(manual_parameters=[
openapi.Parameter('name', openapi.IN_QUERY, description='日志文件名', type=openapi.TYPE_STRING)
])
def get(self, request, *args, **kwargs):
"""
查看最近的日志列表
@ -38,12 +56,13 @@ class LogView(APIView):
"""
logs =[]
name = request.GET.get('name', None)
for root, dirs, files in os.walk(settings.LOG_PATH):
for file in files:
# for root, dirs, files in os.walk(settings.LOG_PATH):
# files.reverse()
for file in get_file_list(settings.LOG_PATH):
if len(logs)>50:break
filepath = os.path.join(root, file)
filepath = os.path.join(settings.LOG_PATH, file)
if name:
if filepath.contains(name):
if name in filepath:
fsize = os.path.getsize(filepath)
if fsize:
logs.append({
@ -61,6 +80,7 @@ class LogView(APIView):
})
return Response(logs)
class LogDetailView(APIView):
def get(self, request, name):