问题
I'm trying to debug an existing Hubot script and in the future write my own, and I need an easy way to debug it or at least print values somewhere (but not to the channel). How can I do so?
Bonus points if this can be done with just using Node in some interactive local mode. I'm really not sure where to start.
All scripts Hubot uses are written in Coffeescript.
P.S. I'm using Hubot with Hipchat.
回答1:
I don't know if this helps but I found a way to inspect objects.
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)}"
This allowed be to see all the elements of the object so I could figure out what I was doing wrong...
回答2:
I have discovered the answer myself: console.log MSG
in a .coffee Coffeescript source does exactly what I needed.
回答3:
You can use
robot.logger.info "your log message here"
That will log it just like the other hubot messages get logged.
回答4:
Found this (coffeescript) snippet somewhere which logs all errors, quite helpful to add to bots in development.
robot.error (err, res) ->
robot.logger.error "#{err}\n#{err.stack}"
if res?
res.reply "#{err}\n#{err.stack}"
来源:https://stackoverflow.com/questions/10990762/debugging-printing-in-a-hubot-script