2011-10-05 34 views
0

我盡力通過的SocketHandler沒有運氣登錄指標直接進入碳:使用Python記錄器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

你看到什麼了嗎?

我是否試圖做一些永遠不會工作的事情?

感謝您的幫助!

+0

比方說,我很笨,這不能這樣做。 一個標準插座寫入到全效率碳: 進口插座,時間 S = socket.create_connection((主機,端口)) s.send( 'test.testpython 42%I \ N' %了time.time ()) s.close() 結束您完成。 – brisssou

回答

0

假設你的配置文件是完全一樣的 - 你的配置文件中的「$ HOST」替換爲主機的實際名稱。然後會發生什麼?如果這樣,你需要的名稱是環境依賴的,請嘗試使用

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

在配置文件中。