Heim > Artikel > Backend-Entwicklung > So verwenden Sie Python + Flask, um Echtzeitaktualisierungen und die Anzeige von Protokollen auf Webseiten zu realisieren
Verwenden Sie das Modul: Logging
, um benutzerdefinierte Protokolle zu generieren und die Protokolle im angegebenen Pfad auszugeben.
Protokollebene: debug (Debug-Protokoll)
1. Der Inhalt wird nach der Ausführung ausgegeben im aktuellen Dateiverzeichnis:
Protokollinhalt:
2. Erstellen Sie eine neue py-Datei (generation_log) mit einem benutzerdefinierten Dateinamen,
3. Flask erstellt einen Webdienst. Ich werde es im Moment nicht erklären. Wenn Sie interessiert sind, können Sie auf mein Update warten um schnell eine einfache Webseite zu implementieren
1. Erstellen Sie eine app.py-Datei und geben Sie den folgenden Code einimport logging as lg import os class logging_(): def __init__(path,delete=True) self.path = path #日志文件存放位置 name = 'log.log' #日志文件名称 self.log_ = os.path.join(self.path,name) #进入文件目录 if delete == True: open(f"{path}/{name}","w").close #为True时清空文本 # 创建一个日志处理器 self.logger = lg.getLogger('logger') # 设置日志等级,低于设置等级的日志被丢弃 self.logger.setLevel(lg.DEBUG) # 设置输出日志格式 self.fmt = lg.Formatter("[%(asctime)s] - %(levelname)s: %(message)s","%Y-%m-%d %H:%M:%S") # 创建一个文件处理器 self.fh = lg.FileHandler(self.log_,encoding='utf-8') # 设置文件输出格式 self.fh.setFormatter(self.fmt) # 将文件处理器添加到日志处理器中 self.logger.addHandler(self.fh) # 创建一个控制台处理器 self.sh=lg.StreamHandler() # 设置控制台输出格式 self.sh.setFormatter(self.fmt) # 将控制台处理器添加到日志处理器中 self.logger.addHandler(self.sh) # 关闭文件 self.fh.close() # 使用 if __name__ == '__main__': _path = os.paht.dirname(__file__) # 获取当前文件的路径 lg = logging_(_path).logger # 实例化封装类 lg.info('1111') lg.debug('2222') lg.error('33333') lg.warning('44444')2. Erstellen Sie ein neues Verzeichnis.html Datei im Vorlagenverzeichnis und geben Sie den folgenden Frontend-Code ein:
# 导入上面封装好的日志输出
from logging.demo_01 import logging_
import os,time
_path = os.path.dirname(__file__) # 获取当前文件路径
lg = logging_(_path) # 实例化类
# 创建方法生成日志
def generation_log():
for i in range(20):
lg.info(i)
time.sleep(1)
# 读取日志并返回
def red_logs():
log_path = f'{_path}/log.log' # 获取日志文件路径
with open(log_path,'rb') as f:
log_size = path.getsize(log_path) # 获取日志大小
offset = -100
# 如果文件大小为0时返回空
if log_size == 0:
return ''
while True:
# 判断offset是否大于文件字节数,是则读取所有行,并返回
if (abs(offset) >= log_size):
f.seek(-log_size, 2)
data = f.readlines()
return data
# 游标移动倒数的字节数位置
data = f.readlines()
# 判断读取到的行数,如果大于1则返回最后一行,否则扩大offset
if (len(data) > 1):
return data
else:
offset *= 2
: 1. Überprüfen Sie das Projektverzeichnis, um zu sehen, ob der Code vollständig ist: 2. Starten Sie die App .py-Datei
3. Greifen Sie auf die lokale Verbindung zu: http://127.0.0.1: 5000/
4. Klicken Sie zum Starten
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Python + Flask, um Echtzeitaktualisierungen und die Anzeige von Protokollen auf Webseiten zu realisieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!