优化日志查看,添加删除日志文件功能

This commit is contained in:
ngfchl
2022-12-27 16:12:44 +08:00
parent 2f9fa014b5
commit 0478fc3f29
4 changed files with 66 additions and 11 deletions

View File

@@ -32,6 +32,7 @@ urlpatterns = [
path(r'get_log_list', views.get_log_list, name='get_log_list'),
path(r'show_log_list', views.show_log_list, name='show_log_list'),
path(r'get_log_content', views.get_log_content, name='get_log_content'),
path(r'remove_log_api', views.remove_log_api, name='remove_log_api'),
path(r'get_helper_license', views.get_helper_license, name='get_helper_license'),
path(r'downloading_status', views.downloading_status, name='downloading_status'),
path(r'do_sql', views.do_sql, name='do_sql'),

View File

@@ -934,12 +934,12 @@ def show_sign_api(request):
def get_log_list(request):
path = os.path.join(BASE_DIR, 'db')
logger.info(path)
logger.info(os.listdir(path))
# logger.info(path)
# logger.info(os.listdir(path))
names = [name for name in os.listdir(path)
if os.path.isfile(os.path.join(path, name)) and name.startswith('logs')]
logger.info(names)
names = sorted(names, key=lambda x: os.stat(os.path.join(BASE_DIR, f'db/{x}')).st_ctime, reverse=True)
# logger.info(names)
return JsonResponse(data=CommonResponse.success(
data={
'path': path,
@@ -953,7 +953,7 @@ def get_log_content(request):
path = os.path.join(BASE_DIR, 'db/' + name)
with open(path, 'r') as f:
logs = f.readlines()
logger.info(logs)
logger.info(f'日志行数:{len(logs)}')
return JsonResponse(data=CommonResponse.success(
data={
'path': path,
@@ -962,6 +962,21 @@ def get_log_content(request):
).to_dict(), safe=False)
def remove_log_api(request):
name = request.GET.get('name')
path = os.path.join(BASE_DIR, f'db/{name}')
try:
os.remove(path)
return JsonResponse(data=CommonResponse.success(
msg='删除成功!'
).to_dict(), safe=False)
except Exception as e:
logger.error(traceback.format_exc(3))
return JsonResponse(data=CommonResponse.error(
msg='删除文件出错啦!详情请查看日志'
).to_dict(), safe=False)
def show_log_list(request):
return render(request, 'auto_pt/showlog.html')

View File

@@ -189,7 +189,7 @@ LOGGING = {
'filename': os.path.join(BASE_DIR, 'db/logs.log'),
'when': 'm',
'interval': 10,
'backupCount': 30,
'backupCount': 10,
# 'class': 'logging.handlers.RotatingFileHandler',
# 'filename': "db/{}.log".format(datetime.datetime.today()), # 日志文件的位置
# 'maxBytes': 30 * 1024 * 1024, # 日志文件的大小300*1024*1024为300MB

View File

@@ -33,11 +33,13 @@
<div>
<el-select placeholder="请选择要查看的日志"
size="small"
v-model="log" @change="showLog()">
v-model="log" @change="showLog">
<el-option
v-for="(name,index) in names" :index="index" :label="name" :value="name">
</el-option>
</el-select>
<el-button type="primary" @click="showLog" size="small">查看日志</el-button>
<el-button type="danger" @click="removeLog" size="small">删除日志</el-button>
</div>
<el-container style="height: 780px; border: 1px solid #eee;margin-top: 5px;">
<el-main class="logs">
@@ -57,7 +59,7 @@
data() {
return {
names: [],
log: '',
log: 'logs.log',
logs: [],
}
},
@@ -66,7 +68,11 @@
},
mounted() {
{#this.chart = this.$refs.charts.chart#}
this.getLogs()
setTimeout(() => {
this.getLogs()
this.showLog()
}, 50)
},
methods: {
getLogs() {
@@ -100,10 +106,10 @@
},
showLog() {
{#console.log(name)#}
let name = this.log
this.logs = []
console.log(this.log)
axios.get(
"{% url 'get_log_content' %}" + '?name=' + name
"{% url 'get_log_content' %}" + '?name=' + this.log
).then(res => {
console.log('获取数据列表成功', res.data)
{#let data = res.data#}
@@ -130,6 +136,39 @@
});
})
},
removeLog() {
if (this.log == 'logs.log') {
this.$message({
type: 'warning',
message: '当前日志正在使用中,请勿操作!'
});
return
}
console.log(this.log)
axios.get(
"{% url 'remove_log_api' %}" + '?name=' + this.log
).then(res => {
console.log('删除日志文件成功', res.data)
{#let data = res.data#}
{#console.log(typeof res.data.data)#}
if (res.data.code === 0) {
this.getLogs()
this.showLog()
} else {
this.loading = false
this.$message({
type: 'warning',
message: '删除日志文件失败!'
});
}
}).catch(res => {
console.log('删除日志文件失败', res)
this.$message({
type: 'warning',
message: '删除日志文件失败!' + res
});
})
},
}
})
</script>