日志查询
This commit is contained in:
parent
eda2c23659
commit
e040b14860
|
@ -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',
|
path: 'admin-link',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
|
|
|
@ -35,5 +35,5 @@ class Equipment(CommonBModel):
|
||||||
verbose_name_plural = verbose_name
|
verbose_name_plural = verbose_name
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name + '-' + self.name
|
return self.number + '-' + self.name
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
import psutil
|
import psutil
|
||||||
|
from rest_framework import response
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
from rest_framework.views import APIView
|
from rest_framework.views import APIView
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
|
@ -7,6 +8,8 @@ from rest_framework.viewsets import ViewSet
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
import os
|
import os
|
||||||
from rest_framework import serializers, status
|
from rest_framework import serializers, status
|
||||||
|
from drf_yasg import openapi
|
||||||
|
from drf_yasg.utils import swagger_auto_schema
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
class ServerInfoView(APIView):
|
class ServerInfoView(APIView):
|
||||||
|
@ -29,8 +32,23 @@ class ServerInfoView(APIView):
|
||||||
ret['disk']['percent'] = disk.percent
|
ret['disk']['percent'] = disk.percent
|
||||||
return Response(ret)
|
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):
|
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):
|
def get(self, request, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
查看最近的日志列表
|
查看最近的日志列表
|
||||||
|
@ -38,20 +56,13 @@ class LogView(APIView):
|
||||||
"""
|
"""
|
||||||
logs =[]
|
logs =[]
|
||||||
name = request.GET.get('name', None)
|
name = request.GET.get('name', None)
|
||||||
for root, dirs, files in os.walk(settings.LOG_PATH):
|
# for root, dirs, files in os.walk(settings.LOG_PATH):
|
||||||
for file in files:
|
# files.reverse()
|
||||||
if len(logs)>50:break
|
for file in get_file_list(settings.LOG_PATH):
|
||||||
filepath = os.path.join(root, file)
|
if len(logs)>50:break
|
||||||
if name:
|
filepath = os.path.join(settings.LOG_PATH, file)
|
||||||
if filepath.contains(name):
|
if name:
|
||||||
fsize = os.path.getsize(filepath)
|
if name in filepath:
|
||||||
if fsize:
|
|
||||||
logs.append({
|
|
||||||
"name":file,
|
|
||||||
"filepath":filepath,
|
|
||||||
"size":round(fsize/1000,1)
|
|
||||||
})
|
|
||||||
else:
|
|
||||||
fsize = os.path.getsize(filepath)
|
fsize = os.path.getsize(filepath)
|
||||||
if fsize:
|
if fsize:
|
||||||
logs.append({
|
logs.append({
|
||||||
|
@ -59,8 +70,17 @@ class LogView(APIView):
|
||||||
"filepath":filepath,
|
"filepath":filepath,
|
||||||
"size":round(fsize/1000,1)
|
"size":round(fsize/1000,1)
|
||||||
})
|
})
|
||||||
|
else:
|
||||||
|
fsize = os.path.getsize(filepath)
|
||||||
|
if fsize:
|
||||||
|
logs.append({
|
||||||
|
"name":file,
|
||||||
|
"filepath":filepath,
|
||||||
|
"size":round(fsize/1000,1)
|
||||||
|
})
|
||||||
return Response(logs)
|
return Response(logs)
|
||||||
|
|
||||||
|
|
||||||
class LogDetailView(APIView):
|
class LogDetailView(APIView):
|
||||||
|
|
||||||
def get(self, request, name):
|
def get(self, request, name):
|
||||||
|
|
Loading…
Reference in New Issue