使用Python记录器SocketHandler直接记录到碳(石墨)?

时间:2011-10-05 16:13:59

标签: python graphite

我尽力通过SocketHandler直接将指标记录到碳中,但没有运气:

logger.conf

[loggers]
keys=root,carbon

[handlers]
keys=carbonHandler

[formatters]
keys=carbonFormatter

[logger_carbon]
level=DEBUG
handlers=carbonHandler
qualname=carbon
propagate=0

[logger_root]
level=DEBUG
handlers=carbonHandler

[handler_carbonHandler]
class=logging.handlers.SocketHandler
level=DEBUG
formatter=carbonFormatter
args=('$HOST', 2003)

[formatter_carbonFormatter]
format=%(message)s %(created)i

然后,用它来记录:

import logging
import logging.config

logging.config.fileConfig('logging.conf')

logger = logging.getLogger('carbon')
logger.info('test.python 42')

这是一个悲伤的失败......

我可以使用echo "test.metric 42 $(date +'%s')" | nc $HOST 2003

与碳交谈

你看到了吗?

我是否尝试做一些不起作用的事情?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

假设您的配置文件完全一样 - 将配置文件中的“$ HOST”替换为主机的实际名称。那么会发生什么?如果可行并且您需要该名称与环境相关,请尝试使用

args=(os.environ['HOST'], 2003) 

在配置文件中。