Dim*_*ris 5 python logging asynchronous mongodb
我需要记录我的 Web 应用程序的特定活动(基于 Python - SQL alchemy with Postgres)并且我不想在我的 Postgres 数据库上转储日志信息(为什么用垃圾填满它?)或使用日志文件(很难搜索)。
理想情况下,我想将所有内容都扔到另一个数据库中并以异步方式执行此操作。由于日志记录是异步的,我不需要担心写入操作失败和中断执行所有重要业务的代码。此外,如果我错过了一些日志记录事件,这可能没什么大不了的。
Mongo 似乎是一个很好的解决方案,因为它非常适合写入操作并且易于设置。
问题是我还没有找到任何能满足我的需求,尤其是异步需求的 Python 工具。
有什么想法吗?
异步日志记录到 mongodb 可以通过在 log4j 中添加 AsyncAppender 来实现,它将引用一个真正的appender。
对于基本理解请遵循此http://wiki.python.org/jython/Log4jExample
log4mongo将数据推送到 mongo.Python 驱动程序可在http://log4mongo.org/display/PUB/Log4mongo+for+Python上找到
添加 AsyncAppender 将使日志记录异步方式
仅供参考,等效的 log4j 文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="MongoDB" class="org.log4mongo.MongoDbAppender" >
<param name="hostname" value="127.0.0.1" />
<param name="port" value="27017" />
<param name="databaseName" value="LogDB"/>
<param name="collectionName" value="Log" />
</appender>
<appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
<param name="BufferSize" value="50000"/>
<appender-ref ref="MongoDB"/>
</appender>
<root>
<level value="all"/>
<appender-ref ref="ASYNC"/>
</root>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2773 次 |
| 最近记录: |