0

我尽力通过 SocketHandler 将指标直接记录到 carbon 中,但没有成功:

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

你看到什么了吗?

我会尝试做一些永远不会奏效的事情吗?

谢谢你的帮助!

4

1 回答 1

0

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

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

在配置文件中。

于 2011-10-05T19:08:59.500 回答