From 0478fc3f299db15bfd851b2592df58900672990b Mon Sep 17 00:00:00 2001 From: ngfchl Date: Tue, 27 Dec 2022 16:12:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=88=A0=E9=99=A4=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=96=87=E4=BB=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- auto_pt/urls.py | 1 + auto_pt/views.py | 25 +++++++++++++---- ptools/settings.py | 2 +- templates/auto_pt/showlog.html | 49 ++++++++++++++++++++++++++++++---- 4 files changed, 66 insertions(+), 11 deletions(-) diff --git a/auto_pt/urls.py b/auto_pt/urls.py index 82d2488..dca4a7b 100644 --- a/auto_pt/urls.py +++ b/auto_pt/urls.py @@ -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'), diff --git a/auto_pt/views.py b/auto_pt/views.py index b933247..12c4d97 100644 --- a/auto_pt/views.py +++ b/auto_pt/views.py @@ -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') diff --git a/ptools/settings.py b/ptools/settings.py index 77bc5d8..267053b 100644 --- a/ptools/settings.py +++ b/ptools/settings.py @@ -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) diff --git a/templates/auto_pt/showlog.html b/templates/auto_pt/showlog.html index a86a4f6..e87b15a 100644 --- a/templates/auto_pt/showlog.html +++ b/templates/auto_pt/showlog.html @@ -33,11 +33,13 @@
+ v-model="log" @change="showLog"> + 查看日志 + 删除日志
@@ -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 + }); + }) + }, } })