mirror of
https://github.com/nexus-stc/hyperboria
synced 2024-11-23 19:46:49 +01:00
9ce67ec590
- feat(idm): Rename IDM-2 to IDM - feat(idm): Open IDM 3 internal commit(s) GitOrigin-RevId: e302e9b5cda18cca1adc4ae8a3d906714d222106
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
import logging
|
|
import logging.config
|
|
import sys
|
|
|
|
from izihawa_utils.exceptions import BaseError
|
|
from izihawa_utils.file import mkdir_p
|
|
from library.logging.formatters import (
|
|
DefaultFormatter,
|
|
DefaultHttpFormatter,
|
|
)
|
|
from library.logging.handlers import QueueHandler
|
|
from prometheus_client import Counter
|
|
|
|
error_counter = Counter('errors_total', 'counter for error.log')
|
|
|
|
|
|
def configure_logging(config, make_path=True):
|
|
if config.get('application', {}).get('debug', False) or 'logging' not in config:
|
|
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
|
|
else:
|
|
if make_path:
|
|
mkdir_p(config['log_path'])
|
|
logging.config.dictConfig(config['logging'])
|
|
|
|
|
|
def error_log(e, level=logging.ERROR, **fields):
|
|
level = getattr(e, 'level', level)
|
|
if level == logging.ERROR:
|
|
error_counter.inc()
|
|
if isinstance(e, BaseError):
|
|
e = e.as_internal_dict()
|
|
e.update(fields)
|
|
elif fields:
|
|
e = {'error': repr(e), **fields}
|
|
logging.getLogger('error').log(
|
|
msg=e,
|
|
level=level
|
|
)
|
|
|
|
|
|
__all__ = [
|
|
'DefaultFormatter', 'DefaultHttpFormatter',
|
|
'QueueHandler', 'configure_logging', 'error_log',
|
|
]
|