Skip to content

Commit dabbaf0

Browse files
authored
更新日志输出和写入配置 (#35)
1 parent 2de88be commit dabbaf0

File tree

3 files changed

+31
-35
lines changed

3 files changed

+31
-35
lines changed

backend/common/log.py

+24-28
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import inspect
44
import logging
55
import os
6+
import sys
67

7-
from sys import stderr, stdout
88

99
from loguru import logger
1010

@@ -41,7 +41,7 @@ def setup_logging():
4141
"""
4242
# Intercept everything at the root logger
4343
logging.root.handlers = [InterceptHandler()]
44-
logging.root.setLevel(settings.LOG_ROOT_LEVEL)
44+
logging.root.setLevel(settings.LOG_STD_LEVEL)
4545

4646
# Remove all log handlers and propagate to root logger
4747
for name in logging.root.manager.loggerDict.keys():
@@ -54,62 +54,58 @@ def setup_logging():
5454
# Debug log handlers
5555
# logging.debug(f'{logging.getLogger(name)}, {logging.getLogger(name).propagate}')
5656

57-
# Remove every other logger's handlers
57+
# Remove default loguru logger
5858
logger.remove()
5959

60-
# Configure loguru logger before starts logging
60+
# Set the loguru default handlers
6161
logger.configure(
6262
handlers=[
6363
{
64-
'sink': stdout,
65-
'level': settings.LOG_STDOUT_LEVEL,
66-
'filter': lambda record: record['level'].no <= 25,
64+
'sink': sys.stdout,
65+
'level': settings.LOG_STD_LEVEL,
6766
'format': settings.LOG_STD_FORMAT,
68-
},
69-
{
70-
'sink': stderr,
71-
'level': settings.LOG_STDERR_LEVEL,
72-
'filter': lambda record: record['level'].no >= 30,
73-
'format': settings.LOG_STD_FORMAT,
74-
},
67+
}
7568
]
7669
)
7770

7871

79-
def set_customize_logfile():
72+
def set_custom_logfile():
8073
log_path = path_conf.LOG_DIR
8174
if not os.path.exists(log_path):
8275
os.mkdir(log_path)
8376

8477
# log files
85-
log_stdout_file = os.path.join(log_path, settings.LOG_STDOUT_FILENAME)
86-
log_stderr_file = os.path.join(log_path, settings.LOG_STDERR_FILENAME)
78+
log_access_file = os.path.join(log_path, settings.LOG_ACCESS_FILENAME)
79+
log_error_file = os.path.join(log_path, settings.LOG_ERROR_FILENAME)
8780

88-
# loguru logger: https://loguru.readthedocs.io/en/stable/api/logger.html#loguru._logger.Logger.add
81+
# set loguru logger default config
82+
# https://loguru.readthedocs.io/en/stable/api/logger.html#loguru._logger.Logger.add
8983
log_config = {
90-
'rotation': '10 MB',
91-
'retention': '15 days',
92-
'compression': 'tar.gz',
93-
'enqueue': True,
9484
'format': settings.LOG_FILE_FORMAT,
85+
'enqueue': True,
86+
'rotation': '5 MB',
87+
'retention': '7 days',
88+
'compression': 'tar.gz',
9589
}
9690

9791
# stdout file
9892
logger.add(
99-
str(log_stdout_file),
100-
level=settings.LOG_STDOUT_LEVEL,
101-
**log_config,
93+
str(log_access_file),
94+
level=settings.LOG_ACCESS_FILE_LEVEL,
95+
filter=lambda record: record['level'].no <= 25,
10296
backtrace=False,
10397
diagnose=False,
98+
**log_config,
10499
)
105100

106101
# stderr file
107102
logger.add(
108-
str(log_stderr_file),
109-
level=settings.LOG_STDERR_LEVEL,
110-
**log_config,
103+
str(log_error_file),
104+
level=settings.LOG_ERROR_FILE_LEVEL,
105+
filter=lambda record: record['level'].no >= 30,
111106
backtrace=True,
112107
diagnose=True,
108+
**log_config,
113109
)
114110

115111

backend/core/conf.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,13 @@ def validator_api_url(cls, values):
6767
TOKEN_URL_SWAGGER: str = f'{FASTAPI_API_V1_PATH}/auth/login/swagger'
6868

6969
# Log
70-
LOG_ROOT_LEVEL: str = 'NOTSET'
70+
LOG_STD_LEVEL: str = 'INFO'
71+
LOG_ACCESS_FILE_LEVEL: str = 'INFO'
72+
LOG_ERROR_FILE_LEVEL: str = 'ERROR'
7173
LOG_STD_FORMAT: str = '<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</> | <lvl>{level: <8}</> | <lvl>{message}</>'
7274
LOG_FILE_FORMAT: str = '<green>{time:YYYY-MM-DD HH:mm:ss.SSS}</> | <lvl>{level: <8}</> | <lvl>{message}</>'
73-
LOG_STDOUT_LEVEL: str = 'INFO'
74-
LOG_STDERR_LEVEL: str = 'ERROR'
75-
LOG_STDOUT_FILENAME: str = 'fba_access.log'
76-
LOG_STDERR_FILENAME: str = 'fba_error.log'
75+
LOG_ACCESS_FILENAME: str = 'fba_access.log'
76+
LOG_ERROR_FILENAME: str = 'fba_error.log'
7777

7878
# 中间件
7979
MIDDLEWARE_CORS: bool = True

backend/core/registrar.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
from backend.app.router import route
1313
from backend.common.exception.exception_handler import register_exception
14-
from backend.common.log import setup_logging, set_customize_logfile
14+
from backend.common.log import setup_logging, set_custom_logfile
1515
from backend.core.conf import settings
1616
from backend.core.path_conf import STATIC_DIR
1717
from backend.database.db import mysql_config
@@ -87,7 +87,7 @@ def register_logger() -> None:
8787
:return:
8888
"""
8989
setup_logging()
90-
set_customize_logfile()
90+
set_custom_logfile()
9191

9292

9393
def register_static_file(app: FastAPI):

0 commit comments

Comments
 (0)