2012-06-12 23 views
12

Varolan bir Hubot komut dosyasını hata ayıklamaya çalışıyorum ve gelecekte kendi başıma yazmam gerekiyor ve en azından hata ayıklamak veya en azından bir yere yazdırmak için kolay bir yola ihtiyacım var (ancak kanala değil) . Bunu nasıl yapabilirim?Hubot komut dosyasında hata ayıklama/yazdırma

Bu, eğer bazı interaktif yerel modda sadece Düğüm kullanılarak yapılabilirse, bonus puanları. Nereden başlayacağından emin değilim.

Hubot'un tüm komut dosyaları Coffeescript'te yazılmıştır.

P.S. Hubchat'u Hipchat ile kullanıyorum.

cevap

8

Yanıtı kendim buldum: console.log MSG .coffee Coffeescript kaynağında tam olarak ihtiyacım olan şey var.

+7

Ayrıca yerel olarak test etmek ve hata ayıklama komut sağlayacak '-a ' seçeneğine göz bırakarak repl çalıştırabilirsiniz. –

+0

@Artem Hubotu ateşlemek için her şeyi yerel olarak hangi komutla çalıştırıyorsunuz? Ben de burada bir betik hata ayıklamak için arıyorum :) – mecampbellsoup

10

Bunun yardımcı olup olmadığını bilmiyorum ama nesneleri denetlemenin bir yolunu buldum.

Util = require "util" 

module.exports = (robot) -> 
    robot.hear /hi robot/i, (msg) -> 
    user = robot.brain.usersForFuzzyName(msg.message.user.name) 
    msg.send "#{Util.inspect(user)}" 

Bu

+0

@radixhound Yani 'msg.send" foo "' 'bin/hubot' gibi bir şey aracılığıyla Hubot'u başlattıktan sonra konsola yazdı mı? Hubot'unuzu başlatmak için bundan önceki adım nedir? Teşekkürler! – mecampbellsoup

+0

Evet, Hubot'u bin/hubot ile başlatıyorum ve çıkışı bir yanıtın içine koydum. Temel olarak, komut satırından hubot'u başlat ve "selam robot" deyin ve bilgiyi çıktılar. Muhtemelen 'kullanıcılara göster' gibi bir şey yapmak daha iyi. – radixhound

3

Sen İşte bu sadece log olacak

robot.logger.info "your log message here" 

kullanabilirsiniz ... Ben yanlış ne yaptığını anlamaya böylece nesnenin tüm öğeleri görmek için olmak izin Diğer hubpos mesajlarının kaydedilmesi gibi.

0

Bu, (coffeescript) snippet'ini, tüm hataları günlüğe kaydederek, gelişimde botlara eklemek için oldukça yardımcı olan bir yer buldu.

robot.error (err, res) -> robot.logger.error "#{err}\n#{err.stack}" if res? res.reply "#{err}\n#{err.stack}"

İlgili konular