为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第三方库


热门话题
安卓中通过TCP发送时java文件损坏   Java测试预期=异常失败,断言错误   java ssh4 LazyInitializationException   java是否可以在集合中添加重复项?   java是一个免费的开源数据库管理工具   java是否可以在导出的html中嵌入图像   编译器构造解释一些东西,并用Java运行生成的字节码?   java KeyPairGenerator未生成随机密钥   java使用正则表达式生成字符串而不是匹配字符串   java中的多线程线程间通信   具有复合密钥的java Hibernate合并问题   java不能在MainActivity类之外使用SharedReferences变量   正在获取切割/零件异常消息。使用java Spring ControllerAdvice   java tomcat漏洞讨论   javascript在Java中实现“system”命令   java如何在JUnit5*中加载*Spring测试上下文之前获取回调?   java bluej关于缺少返回语句   JavaSpringBoot@ModelAttribute包含使用字符串键的其他模型   从可选中抛出异常。ifPresent()Java 8