为flask应用程序配置graylog日志处理程序和中间件

Flask-Graylog的Python项目详细描述


这是一个Flask扩展,允许您配置一个Graylog日志处理程序,并配置中间件将每个请求/响应记录到graylog。

安装

您可以通过pip安装它

pip install Flask-Graylog

用法

您只需导入并初始化应用程序即可

# Import dependenciesfromflaskimportFlaskfromflask.ext.graylogimportGraylog# Configure app and Graylog loggerapp=Flask(__name__)graylog=Graylog(app)# Log to grayloggraylog.info('Message',extra={'extra':'metadata',})# Use graylog log handler in another loggerimportlogginglogger=logging.getLogger(__name__)logger.addHandler(graylog.handler)logger.info('Message')

配置选项

以下选项可用于配置灰色日志记录器。

fromflaskimportFlaskfromflask.ext.graylogimportGraylogapp=Flask(__name__)# Use configuration from `app`app.config['GRAYLOG_HOST']='10.1.1.1'graylog=Graylog(app)# Provide configurationconfig={'GRAYLOG_HOST':'10.1.1.1'}graylog=Graylog(app,config=config)
  • GRAYLOG_HOST-要向[默认值:'localhost']发送消息的主机
  • GRAYLOG_PORT-发送消息的端口[默认值:12201]
  • GRAYLOG_FACILITY-要使用[默认值:'flask']报告的工具
  • GRAYLOG_EXTRA_FIELDS-是否包含每条消息中的额外数据[默认值:true]
  • GRAYLOG_ADD_DEBUG_FIELDS-是否应在每条消息中添加额外的python调试字段[默认值:true]
  • GRAYLOG_CONFIGURE_MIDDLEWARE-是否设置中间件来记录每个响应[默认值:true]

示例消息格式

{"_process_name":"MainProcess","_request":{"content_length":"","remote_addr":"127.0.0.1","headers":{"upgrade_insecure_requests":"1","connection":"keep-alive","accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8","dnt":"1","host":"localhost:5000","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36","accept_language":"en-US,en;q=0.8,ms;q=0.6","cache_control":"max-age=0","accept_encoding":"gzip, deflate, sdch"},"path_info":"/","content_type":"","query_string":"","method":"GET"},"level":6,"_logger":"flask_graylog","timestamp":1460502169.950895,"_pid":6010,"facility":"flask","_function":"after_request","_thread_name":"Thread-1","host":"voltaire.local","version":"1.0","file":"Flask-Graylog/flask_graylog.py","full_message":"Finishing request for \"GET http://localhost:5000/\" from -","line":130,"_response":{"headers":{"content_length":"6","content_type":"text/html; charset=utf-8"},"time_ms":0,"status_code":200},"_flask":{"view_args":{},"endpoint":"root"},"short_message":"Finishing request for \"GET http://localhost:5000/\" from -"}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java提高机器学习Rest服务性能   java反转字符的字符串顺序,并使用构造函数将其放入LinkedList   继承为什么Java不支持在方法签名中添加“throws”?   执行DDL alter table if exists任务时发生java错误。城市   java在eclipse中使用CREATETXT并打包在jar中   java AES256与3DES 256密钥检测   具有两个相同类型字段的java JPA实体   java Webapp日志记录设置被忽略   java KeyEventDispatcher可以在一个应用程序中工作,但不能在另一个应用程序中工作   带有Swing和OpenJDK的java PinchZoom   未涉及java AspectJ注释切入点(对于任何注释类型)   java如何在FuseBAI中获取日志文件详细信息   java在Linux上将wstring转换为jstring