日志文件中存在日志重复行的问题



我一整天都在努力让它正常工作,它几乎完成了,只是我遇到了一个奇怪的问题。在搜索查询中找到的每个结果都会按预期记录下来,但第一个结果会记录一次,第二个记录两次,第三个记录三次等等。

有什么办法去掉重复的吗?日志示例

#!/usr/bin/python
import urllib
import simplejson 
import logging
from logging.handlers import SysLogHandler
query = urllib.urlencode({'q' : 'test'})
url = 'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&%s' 
      % (query)
search_results = urllib.urlopen(url)
json = simplejson.loads(search_results.read())
results = json['responseData']['results']
for i in results:
    logger = logging.getLogger()
    logger.addHandler(SysLogHandler(address=('192.168.0.2', 514)))
    logger.addHandler(logging.FileHandler("hits.log"))
    logging.warn(i['url'])
    print i['url']

因为每次在for循环中都要添加一个新的处理程序。在循环外执行此操作,然后只在循环内执行实际的logging.warn

我也遇到过类似的问题,但每次在for循环中都需要添加一个新的处理程序。所以移除循环中的处理程序对我没有帮助

当您创建这样的处理程序时:

hdl = logging.FileHandler("hits.log")

你需要这样删除它:

logger.removeHandler(hdl)

正如Daniel所说,由于你还没有接受答案,你需要

logger = logging.getLogger('')
logger.addHandler(logging.FileHandler("hits.log"))
logger.addHandler(SysLogHandler(address=('192.168.0.2', 514)))

在CCD_ 2之外。

最新更新