import logging
import fluent.handler
# 配置日志记录器
logger = logging.getLogger('example')
logger.setLevel(logging.DEBUG)
# 创建Fluentd处理程序
fluent_handler = fluent.handler.FluentHandler('myapp', host='fluentd_host', port=24224)
# 设置日志处理程序的日志级别
fluent_handler.setLevel(logging.DEBUG)
# 将Fluentd处理程序添加到日志记录器中
logger.addHandler(fluent_handler)
# 记录一些日志
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
# fluentd.conf
@type forward
port 24224
@type elasticsearch
host localhost
port 9200
index_name fluentd
type_name fluentd
步骤 3:在Python应用程序中发送日志
使用以下示例代码,在你的Python应用程序中记录日志并发送到Fluentd。
import logging
from fluent import sender
# 配置日志记录器
logger = logging.getLogger('example')
logger.setLevel(logging.DEBUG)
# 配置Fluentd发送器
fluent_sender = sender.FluentSender('myapp', host='localhost', port=24224)
# 创建自定义日志处理程序
class FluentHandler(logging.Handler):
def emit(self, record):
log_entry = self.format(record)
fluent_sender.emit('app.logs', log_entry)
# 将自定义日志处理程序添加到日志记录器中
logger.addHandler(FluentHandler())
# 记录一些日志
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
# 关闭Fluentd发送器
fluent_sender.close()