更改了日志器 -> 更换为了内置日志器

This commit is contained in:
MarkusJoe
2022-04-24 21:28:52 +08:00
parent cc2062b7ea
commit 02e448092e
3 files changed
+31 -71

No files matched your search

+2 -8
View File
@@ -13,9 +13,6 @@ from .main import main as main_blueprint
from .api import api as api_blueprint
from .config import config
from .utils.password import generate_pwd
from .utils.logger import CreateLogger
logger = CreateLogger().get_logger()
def create_app(config_name):
@@ -27,21 +24,19 @@ def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
config[config_name].init_app(app)
if os.environ.get('SSL_REDIRECT'):
if app.config['SSL_REDIRECT']:
SSLify(app)
app.register_blueprint(main_blueprint)
app.register_blueprint(api_blueprint, url_prefix='/api/v1/')
CreateLogger.init_app(app)
if not os.getenv('ACCESS_KEY'):
access_key = generate_pwd(32)
os.environ['ACCESS_KEY'] = access_key
else:
access_key = os.getenv('ACCESS_KEY')
logger.info('Access Key: {}'.format(access_key))
app.logger.info('Access Key: {}'.format(access_key))
return app
@@ -51,6 +46,5 @@ __all__ = [
'main',
'tests',
'utils',
'logger',
'create_app'
]
+29 -2
View File
@@ -7,16 +7,33 @@
import os
import logging
import platform
from logging.handlers import *
class Config:
JSON_SORT_KEYS = False
JSON_AS_ASCII = False
SSL_REDIRECT = False if not os.environ.get('DYNO') else True
SSL_REDIRECT = False
@staticmethod
def init_app(app):
pass
formatter = logging.Formatter(
fmt='[%(asctime)s] |%(filename)s[%(funcName)s:%(lineno)d] |%(levelname)-8s |%(message)s',
datefmt='%H:%M:%S')
handler = logging.handlers.RotatingFileHandler(filename='./app/logs/access.log',
maxBytes=10240,
backupCount=10)
handler.setFormatter(formatter)
handler.setLevel(logging.DEBUG)
if platform.system() == 'Linux':
syslog_handler = SysLogHandler()
syslog_handler.setLevel(logging.INFO)
app.logger.addHandler(syslog_handler)
app.logger.addHandler(handler)
class DevelopmentConfig(Config):
@@ -27,9 +44,19 @@ class ProductionConfig(Config):
DEBUG = False
class HerokuConfig(ProductionConfig):
SSL_REDIRECT = False if not os.environ.get('DYNO') else True
class ProfessionalConfig(ProductionConfig):
SSL_REDIRECT = True
config = {
'development': DevelopmentConfig,
'production': ProductionConfig,
'professional': ProfessionalConfig,
'heroku': HerokuConfig,
'default': DevelopmentConfig
}
-61
View File
@@ -1,61 +0,0 @@
#!/usr/bin/env python3
# -- coding:utf-8 --
# @Author: markushammered@gmail.com
# @Development Tool: PyCharm
# @Create Time: 2022/4/11
# @File Name: logger.py
import time
import logging.handlers
from colorlog import ColoredFormatter
class CreateLogger:
"""创建日志器"""
def __init__(self) -> None:
"""
初始化类
"""
self.date_format = '%H:%M:%S'
self.info_format_console = '%(log_color)s[%(asctime)s] |%(filename)-12s[%(lineno)s] |%(levelname)-8s |%(message)s'
self.info_format_file = '[%(asctime)s] |%(filename)s[%(funcName)sline:%(lineno)d] |%(levelname)-8s |%(message)s'
self.formatter = ColoredFormatter(fmt=self.info_format_console,
datefmt=self.date_format,
reset=True,
log_colors={
'DEBUG': 'light_purple',
'INFO': 'light_cyan',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'red,bold_red'})
self.formatter_file = logging.Formatter(fmt=self.info_format_file,
datefmt=self.date_format)
def get_logger(self) -> logging.Logger:
"""
设置日志器
:return:
"""
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
console_logger = logging.StreamHandler() # 输出到终端
console_logger.setFormatter(self.formatter)
log_name = time.strftime('%Y-%m-%d#%H') # 一小时内使用的日志文件都是同一个
file_logger = logging.handlers.RotatingFileHandler(filename=f'./app/logs/{log_name}.log',
maxBytes=102400,
backupCount=5) # 每个日志文件最大102400字节(100Kb)
file_logger.setFormatter(self.formatter_file)
logger.addHandler(console_logger)
logger.addHandler(file_logger)
return logger
@staticmethod
def init_app(app):
"""
虚假的init_app静态方法
:param app:
:return:
"""
pass