33import inspect
44import logging
55import os
6-
7- from sys import stderr , stdout
6+ import sys
87
98from asgi_correlation_id import correlation_id
109from loguru import logger
@@ -55,37 +54,11 @@ def setup_logging():
5554 # Debug log handlers
5655 # logging.debug(f'{logging.getLogger(name)}, {logging.getLogger(name).propagate}')
5756
58- # Remove every other logger's handlers
59- logger .remove ( )
57+ # configure loguru
58+ logger .configure ( handlers = [{ "sink" : sys . stdout , "serialize" : False }] )
6059
61- # Define the correlation_id filter function
62- # https://github.com/snok/asgi-correlation-id?tab=readme-ov-file#configure-logging
63- # https://github.com/snok/asgi-correlation-id/issues/7
64- def correlation_id_filter (record ) -> bool :
65- cid = correlation_id .get (settings .LOG_CID_DEFAULT_VALUE )
66- record ['correlation_id' ] = cid [: settings .LOG_CID_UUID_LENGTH ]
67- return True
68-
69- # Configure loguru logger before starts logging
70- logger .configure (
71- handlers = [
72- {
73- 'sink' : stdout ,
74- 'level' : settings .LOG_STDOUT_LEVEL ,
75- 'filter' : lambda record : correlation_id_filter (record ) and record ['level' ].no <= 25 ,
76- 'format' : settings .LOG_STD_FORMAT ,
77- },
78- {
79- 'sink' : stderr ,
80- 'level' : settings .LOG_STDERR_LEVEL ,
81- 'filter' : lambda record : correlation_id_filter (record ) and record ['level' ].no >= 30 ,
82- 'format' : settings .LOG_STD_FORMAT ,
83- },
84- ]
85- )
8660
87-
88- def set_customize_logfile ():
61+ def set_custom_logfile ():
8962 log_path = path_conf .LOG_DIR
9063 if not os .path .exists (log_path ):
9164 os .mkdir (log_path )
@@ -94,10 +67,18 @@ def set_customize_logfile():
9467 log_stdout_file = os .path .join (log_path , settings .LOG_STDOUT_FILENAME )
9568 log_stderr_file = os .path .join (log_path , settings .LOG_STDERR_FILENAME )
9669
70+ # Define the correlation_id filter function
71+ # https://github.com/snok/asgi-correlation-id?tab=readme-ov-file#configure-logging
72+ # https://github.com/snok/asgi-correlation-id/issues/7
73+ def correlation_id_filter (record ):
74+ cid = correlation_id .get (settings .LOG_CID_DEFAULT_VALUE )
75+ record ['correlation_id' ] = cid [: settings .LOG_CID_UUID_LENGTH ]
76+ return record
77+
9778 # loguru logger: https://loguru.readthedocs.io/en/stable/api/logger.html#loguru._logger.Logger.add
9879 log_config = {
99- 'rotation' : '10 MB' ,
100- 'retention' : '15 days' ,
80+ 'rotation' : '5 MB' ,
81+ 'retention' : '7 days' ,
10182 'compression' : 'tar.gz' ,
10283 'enqueue' : True ,
10384 'format' : settings .LOG_FILE_FORMAT ,
@@ -107,18 +88,20 @@ def set_customize_logfile():
10788 logger .add (
10889 str (log_stdout_file ),
10990 level = settings .LOG_STDOUT_LEVEL ,
110- ** log_config ,
91+ filter = lambda record : correlation_id_filter ( record ) and record [ 'level' ]. no <= 25 ,
11192 backtrace = False ,
11293 diagnose = False ,
94+ ** log_config ,
11395 )
11496
11597 # stderr file
11698 logger .add (
11799 str (log_stderr_file ),
118100 level = settings .LOG_STDERR_LEVEL ,
119- ** log_config ,
101+ filter = lambda record : correlation_id_filter ( record ) and record [ 'level' ]. no >= 30 ,
120102 backtrace = True ,
121103 diagnose = True ,
104+ ** log_config ,
122105 )
123106
124107
0 commit comments