37 lines
1.2 KiB
Python
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)
|