提交 f765bbf4 编写于 作者: H hjdhnx

优化实时日志打印

上级 b13bf086
......@@ -6,8 +6,6 @@
from flask_sqlalchemy import SQLAlchemy
import config
import socket
from gevent.pywsgi import WSGIServer
import warnings
warnings.filterwarnings('ignore')
......@@ -18,7 +16,7 @@ from utils import error,parser
from utils.web import *
import sys
import codecs
from classes.cms import CMS
from classes.cms import CMS,logger
import json
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())
......@@ -26,12 +24,16 @@ app = Flask(__name__,static_folder='static',static_url_path='/static')
# app.config["JSON_AS_ASCII"] = False # jsonify返回的中文正常显示
app.config.from_object(config) # 单独的配置文件里写了,这里就不用弄json中文显示了
app.logger.name="drLogger"
db = SQLAlchemy(app)
rule_list = getRules()
# print(rule_list)
logger.info(rule_list)
logger.info(f'http://{getHost(1, 5705)}/index\nhttp://localhost:5705/index')
from models import *
from gevent.pywsgi import WSGIServer
# from geventwebsocket.handler import WebSocketHandler
RuleClass = rule_classes.init(db)
......@@ -57,6 +59,7 @@ def forbidden(): # put application's code here
@app.route('/index')
def index(): # put application's code here
logger.info("进入了首页")
return render_template('index.html',getHost=getHost)
@app.route('/vod')
......@@ -214,5 +217,8 @@ def database():
if __name__ == '__main__':
# app.run(host="0.0.0.0", port=5705)
# app.run(debug=True, host='0.0.0.0', port=5705)
WSGIServer(('0.0.0.0', 5705), app).serve_forever()
# server = WSGIServer(('0.0.0.0', 5705), app, handler_class=WebSocketHandler,log=app.logger)
server = WSGIServer(('0.0.0.0', 5705), app,log=logger)
# server = WSGIServer(('0.0.0.0', 5705), app, handler_class=WebSocketHandler,log=None)
server.serve_forever()
# WSGIServer(('0.0.0.0', 5705), app,log=None).serve_forever()
\ No newline at end of file
......@@ -9,19 +9,12 @@ import math
from utils.web import *
from models import *
from utils.config import config
from utils.log import get_logger
from utils.htmlParser import jsoup
from urllib.parse import urljoin
from concurrent.futures import ThreadPoolExecutor # 引入线程池
import logging
from js.rules import getRules
_logger = logging.getLogger(__name__)
print(_logger)
rule_list = getRules()
print(rule_list)
_logger.info('cms类装载完毕')
print(f'http://{getHost(1, 5705)}/index\nhttp://localhost:5705/index')
logger = get_logger('dr.log')
class CMS:
def __init__(self,rule,db=None,RuleClass=None):
......
gevent-websocket
\ No newline at end of file
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File : log.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Date : 2022/8/27
import os
import logging
from logging import handlers
import sys
dirname, filename = os.path.split(os.path.abspath(sys.argv[0]))
LOG_ROOT = dirname
# print(LOG_ROOT)
# logging.basicConfig(
# # level=logging.INFO, # 控制台打印的日志级别
# level=logging.DEBUG, # 控制台打印的日志级别
# filename='dr.log', # 将日志写入log_new.log文件中
# filemode='a', # 模式,有w和a,w就是写模式,每次都会重新写日志,覆盖之前的日志 a是追加模式,默认如果不写的话,就是追加模式
# # format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
# format="%(asctime)s:%(levelname)s:%(name)s -- %(message)s", datefmt="%Y/%m/%d %H:%M:%S" # 日志格式
# )
def get_logger(log_filename, level=logging.DEBUG, when='D', back_count=0):
"""
https://blog.csdn.net/qq_39147299/article/details/124455632
:brief 日志记录
:param log_filename: 日志名称
:param level: 日志等级 critical > error > warning > info > debug 当设置某个级别之后,把它低的不会被记录,例如级别设置为warning,则info和debug则会被丢弃
:param when: 间隔时间:
S:秒
M:分
H:小时
D:天
W:每星期(interval==0时代表星期一)
midnight: 每天凌晨
:param back_count: 备份文件的个数,若超过该值,就会自动删除
:return: logger
"""
# 创建一个日志器。提供了应用程序接口
logger = logging.getLogger(log_filename)
# 设置日志输出的最低等级,低于当前等级则会被忽略
logger.setLevel(level)
# 创建日志输出路径
log_path = os.path.join(LOG_ROOT, "logs")
if not os.path.exists(log_path):
os.mkdir(log_path)
log_file_path = os.path.join(log_path, log_filename)
# 创建格式器
# formatter = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',datefmt="%Y/%m/%d %H:%M:%S")
formatter = logging.Formatter('%(asctime)s - %(pathname)s[line:%(lineno)d]:%(levelname)s:%(name)s -- %(message)s', datefmt="%Y-%m-%d %H:%M:%S")
# 创建处理器:ch为控制台处理器,fh为文件处理器
ch = logging.StreamHandler()
ch.setLevel(level)
# 输出到文件
fh = logging.handlers.TimedRotatingFileHandler(
filename=log_file_path,
when=when,
backupCount=back_count,
encoding='utf-8')
fh.setLevel(level)
# 设置日志输出格式
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 将处理器,添加至日志器中
logger.addHandler(fh)
logger.addHandler(ch)
return logger
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册