lty/qy_lty/common/aliyun_logging.py
2026-03-17 13:17:02 +08:00

37 lines
1.2 KiB
Python

import logging
from aliyun.log import LogClient, PutLogsRequest, LogItem
from decouple import config
# 配置阿里云日志服务的参数
LOG_PROJECT = config('ALIYUN_LOG_PROJECT')
LOG_STORE = config('ALIYUN_LOG_STORE')
ENDPOINT = config('ALIYUN_LOG_ENDPOINT')
ACCESS_KEY_ID = config('ALIYUN_LOG_ACCESS_KEY_ID')
ACCESS_KEY_SECRET = config('ALIYUN_LOG_ACCESS_KEY_SECRET')
# 初始化阿里云日志客户端
client = LogClient(endpoint=ENDPOINT, accessKeyId=ACCESS_KEY_ID, accessKey=ACCESS_KEY_SECRET)
class AliyunLogHandler(logging.Handler):
def emit(self, record):
log_item = LogItem()
log_item.set_time(record.created)
log_item.set_contents([
('level', record.levelname),
('levelno', str(record.levelno)),
('message', record.getMessage()),
('pathname', record.pathname),
('filename', record.filename),
('funcName', record.funcName),
('lineno', str(record.lineno)),
])
request = PutLogsRequest(LOG_PROJECT, LOG_STORE, '', '', [log_item])
client.put_logs(request)
def setup_logging():
logger = logging.getLogger()
handler = AliyunLogHandler()
handler.setLevel(logging.INFO)
logger.addHandler(handler)