本文整理汇总了Golang中github.com/fluffle/golog/logging.Info函数的典型用法代码示例。如果您正苦于以下问题:Golang Info函数的具体用法?Golang Info怎么用?Golang Info使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Info函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: connect
func connect(c *irc.Conn, server string, password string, exiting chan bool) {
err := c.ConnectTo(server, password)
if err != nil {
log.Error(err.Error())
log.Info("Unable to connect to server")
exiting <- true
} else {
log.Info(c.String())
}
}
示例2: ParseModes
// Parse mode strings for a Nick.
func (nk *Nick) ParseModes(modes string) {
var modeop bool // true => add mode, false => remove mode
for i := 0; i < len(modes); i++ {
switch m := modes[i]; m {
case '+':
modeop = true
case '-':
modeop = false
case 'B':
nk.Modes.Bot = modeop
case 'i':
nk.Modes.Invisible = modeop
case 'o':
nk.Modes.Oper = modeop
case 'w':
nk.Modes.WallOps = modeop
case 'x':
nk.Modes.HiddenHost = modeop
case 'z':
nk.Modes.SSL = modeop
default:
logging.Info("Nick.ParseModes(): unknown mode char %c", m)
}
}
}
示例3: Init
func Init() {
bot.Command(urbanDictionary, "ud", "ud <term> -- "+
"Look up <term> on UrbanDictionary.")
mcConf = conf.Ns("mc")
srv := mcConf.String(mcServer)
if srv != "" {
if st, err := pollServer(srv); err == nil {
logging.Info("Starting MC poller for '%s'", srv)
bot.Poll(st)
bot.Handle(func(ctx *bot.Context) {
st.Topic(ctx)
}, "332")
} else {
logging.Error("Not starting MC poller: %v", err)
}
}
bot.Command(mcSet, "mc set", "mc set <key> <value> -- "+
"Set minecraft server polling config vars.")
// TODO(fluffle): Polling can only be en/disabled at reconnect.
// bot.Command(mcPoll, "mc poll", "mc poll start|stop -- "+
// "Enable or disable minecraft server polling.")
if *githubToken != "" {
rc = reminders.Init()
gh = githubClient()
bot.Handle(githubWatcher, client.PRIVMSG)
bot.Command(githubCreateIssue, "file bug:", "file bug: <title>. "+
"<descriptive body> -- Files a bug on GitHub. Abusers will be hurt.")
bot.Command(githubCreateIssue, "file bug", "file bug <title>. "+
"<descriptive body> -- Files a bug on GitHub. Abusers will be hurt.")
bot.Command(githubCreateIssue, "report bug", "report bug <title>. "+
"<descriptive body> -- Files a bug on GitHub. Abusers will be hurt.")
bot.Command(githubUpdateIssue, "update bug #", "update bug #<number> "+
"<comment> -- Adds a comment to bug <number>. Abusers will be hurt.")
}
if push.Enabled() {
pc = pushes.Init()
bot.Command(pushEnable, "push enable", "push enable -- "+
"Start the OAuth flow to enable pushbullet notifications.")
bot.Command(pushDisable, "push disable", "push disable -- "+
"Disable pushbullet notifications and delete tokens.")
bot.Command(pushConfirm, "push auth", "push auth <pin> -- "+
"Confirm pushed PIN to finish pushbullet auth dance.")
bot.Command(pushAddAlias, "push add alias", "push add alias -- "+
"Add a push alias for your nick.")
bot.Command(pushDelAlias, "push del alias", "push del alias -- "+
"Delete a push alias for your nick.")
http.HandleFunc("/oauth/auth", pushAuthHTTP)
http.HandleFunc("/oauth/device", pushDeviceHTTP)
http.HandleFunc("/oauth/success", pushSuccessHTTP)
http.HandleFunc("/oauth/failure", pushFailureHTTP)
}
}
示例4: rebuild
func rebuild(ctx *Context) {
if !check_rebuilder("rebuild", ctx) {
return
}
// Ok, we should be good to rebuild now.
logging.Info("Beginning rebuild")
ctx.conn.Notice(ctx.Nick, "Beginning rebuild")
cmd := exec.Command("go", "get", "-u", "github.com/fluffle/sp0rkle")
out, err := cmd.CombinedOutput()
logging.Info("Output from go get:\n%s", out)
if err != nil {
ctx.conn.Notice(ctx.Nick, fmt.Sprintf("Rebuild failed: %s", err))
for _, l := range strings.Split(string(out), "\n") {
ctx.conn.Notice(ctx.Nick, l)
}
return
}
bot.servers.Shutdown(true)
}
示例5: GetAll
func (fc *Collection) GetAll(key string) []*Factoid {
// Insisting GetAll isn't used to get every key is probably a good idea
if key == "" {
return nil
}
res := make([]*Factoid, 0, 10)
if err := fc.Find(lookup(key)).All(&res); err == nil {
logging.Info("res = %#v", res)
return res
}
return nil
}
示例6: Connect
// Connect the IRC connection object to "host[:port]" which should be either
// a hostname or an IP address, with an optional port. To enable explicit SSL
// on the connection to the IRC server, set Conn.SSL to true before calling
// Connect(). The port will default to 6697 if ssl is enabled, and 6667
// otherwise. You can also provide an optional connect password.
func (conn *Conn) Connect(host string, pass ...string) error {
if conn.Connected {
return errors.New(fmt.Sprintf(
"irc.Connect(): already connected to %s, cannot connect to %s",
conn.Host, host))
}
if conn.SSL {
if !hasPort(host) {
host += ":6697"
}
logging.Info("irc.Connect(): Connecting to %s with SSL.", host)
if s, err := tls.Dial("tcp", host, conn.SSLConfig); err == nil {
conn.sock = s
} else {
return err
}
} else {
if !hasPort(host) {
host += ":6667"
}
logging.Info("irc.Connect(): Connecting to %s without SSL.", host)
if s, err := net.Dial("tcp", host); err == nil {
conn.sock = s
} else {
return err
}
}
conn.Host = host
if len(pass) > 0 {
conn.password = pass[0]
}
conn.Connected = true
conn.postConnect()
conn.ED.Dispatch(INIT, conn, &Line{})
return nil
}
示例7: Connect
func (conn *Conn) Connect() error {
conn.mu.Lock()
defer conn.mu.Unlock()
if conn.cfg.Server == "" {
return fmt.Errorf("irc.Connect(): cfg.Server must be non-empty")
}
if conn.connected {
return fmt.Errorf("irc.Connect(): Cannot connect to %s, already connected.", conn.cfg.Server)
}
if conn.cfg.SSL {
if !hasPort(conn.cfg.Server) {
conn.cfg.Server += ":6697"
}
logging.Info("irc.Connect(): Connecting to %s with SSL.", conn.cfg.Server)
if s, err := tls.Dial("tcp", conn.cfg.Server, conn.cfg.SSLConfig); err == nil {
conn.sock = s
} else {
return err
}
} else {
if !hasPort(conn.cfg.Server) {
conn.cfg.Server += ":6667"
}
logging.Info("irc.Connect(): Connecting to %s without SSL.", conn.cfg.Server)
if s, err := net.Dial("tcp", conn.cfg.Server); err == nil {
conn.sock = s
} else {
return err
}
}
conn.connected = true
conn.postConnect()
conn.dispatch(&Line{Cmd: REGISTER})
return nil
}
示例8: shutdown
func (conn *Conn) shutdown() {
// Guard against double-call of shutdown() if we get an error in send()
// as calling sock.Close() will cause recv() to recieve EOF in readstring()
if conn.Connected {
logging.Info("irc.shutdown(): Disconnected from server.")
conn.ED.Dispatch(DISCONNECTED, conn, &Line{})
conn.Connected = false
conn.sock.Close()
conn.cSend <- true
conn.cLoop <- true
conn.cPing <- true
// reinit datastructures ready for next connection
// do this here rather than after runLoop()'s for due to race
conn.initialise()
}
}
示例9: shutdown
func (conn *Conn) shutdown() {
// Guard against double-call of shutdown() if we get an error in send()
// as calling sock.Close() will cause recv() to receive EOF in readstring()
conn.mu.Lock()
defer conn.mu.Unlock()
if !conn.connected {
return
}
logging.Info("irc.shutdown(): Disconnected from server.")
conn.dispatch(&Line{Cmd: DISCONNECTED})
conn.connected = false
conn.sock.Close()
close(conn.die)
// reinit datastructures ready for next connection
// do this here rather than after runLoop()'s for due to race
conn.initialise()
}
示例10: main
func main() {
flag.Parse()
logging.InitFromFlags()
// Initialise bot state
bot.Init()
// Connect to mongo
db.Init()
defer db.Close()
// Add drivers
calcdriver.Init()
decisiondriver.Init()
factdriver.Init()
karmadriver.Init()
markovdriver.Init()
quotedriver.Init()
reminddriver.Init()
seendriver.Init()
urldriver.Init()
// Start up the HTTP server
go http.ListenAndServe(*httpPort, nil)
// Connect the bot to IRC and wait; reconnects are handled automatically.
// If we get true back from the bot, re-exec the (rebuilt) binary.
if bot.Connect() {
// Calling syscall.Exec probably means deferred functions won't get
// called, so disconnect from mongodb first for politeness' sake.
db.Close()
// If sp0rkle was run from PATH, we need to do that lookup manually.
fq, _ := exec.LookPath(os.Args[0])
logging.Warn("Re-executing sp0rkle with args '%v'.", os.Args)
err := syscall.Exec(fq, os.Args, os.Environ())
if err != nil {
// hmmmmmm
logging.Fatal("Couldn't re-exec sp0rkle: %v", err)
}
}
logging.Info("Shutting down cleanly.")
}
示例11: connected
func connected(ctx *Context) {
// Set bot mode to keep people informed.
ctx.conn.Mode(ctx.Me(), "+B")
if GetSecret(*oper) != "" {
up := strings.SplitN(*oper, ":", 2)
if len(up) == 2 {
ctx.conn.Oper(up[0], up[1])
}
}
if GetSecret(*vhost) != "" {
up := strings.SplitN(*vhost, ":", 2)
if len(up) == 2 {
ctx.conn.VHost(up[0], up[1])
}
}
for _, c := range strings.Split(*channels, ",") {
logging.Info("Joining %s on startup.\n", c)
ctx.conn.Join(c)
}
}
示例12: doBackup
func (b *boltDatabase) doBackup() {
fn := path.Join(b.dir, fmt.Sprintf("sp0rkle.boltdb.%s.gz",
time.Now().Format("2006-01-02.15:04")))
fh, err := os.OpenFile(fn, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0600)
if err != nil {
logging.Error("Could not create backup file %q: %v", fn, err)
return
}
fz := gzip.NewWriter(fh)
defer fz.Close()
err = b.db.View(func(tx *bolt.Tx) error {
return tx.Copy(fz)
})
if err != nil {
logging.Error("Could not write backup file %q: %v", fn, err)
os.Remove(fn)
return
}
logging.Info("Wrote backup to %q.", fn)
}
示例13: LoadAndPrune
func (rc *Collection) LoadAndPrune() []*Reminder {
// First, drop any reminders where RemindAt < time.Now()
ci, err := rc.RemoveAll(bson.M{"$and": []bson.M{
{"remindat": bson.M{"$lt": time.Now()}},
{"tell": false},
}})
if err != nil {
logging.Error("Pruning reminders returned error: %v", err)
}
if ci.Removed > 0 {
logging.Info("Removed %d old reminders", ci.Removed)
}
// Now, load the remainder; the db is just used for persistence
q := rc.Find(bson.M{"tell": false})
ret := make([]*Reminder, 0)
if err := q.All(&ret); err != nil {
logging.Error("Loading reminders returned error: %v", err)
return nil
}
return ret
}
示例14: main
func main() {
flag.Parse()
logging.InitFromFlags()
// Let's go find some mongo.
db.Init()
defer db.Close()
qc := quotes.Init()
// A communication channel of Quotes.
quotes := make(chan *quotes.Quote)
rows := make(chan []interface{})
// Function to feed rows into the rows channel.
row_feeder := func(sth *sqlite3.Statement, row ...interface{}) {
rows <- row
}
// Function to execute a query on the SQLite db.
db_query := func(dbh *sqlite3.Database) {
n, err := dbh.Execute("SELECT * FROM Quotes;", row_feeder)
if err == nil {
logging.Info("Read %d rows from database.\n", n)
} else {
logging.Error("DB error: %s\n", err)
}
}
// Open up the quote database in a goroutine and feed rows
// in on the input_rows channel.
go func() {
sqlite3.Session(*file, db_query)
// once we've done the query, close the channel to indicate this
close(rows)
}()
// Another goroutine to munge the rows into quotes.
// This was originally done inside the SQLite callbacks, but
// cgo or sqlite3 obscures runtime panics and makes fail happen.
go func() {
for row := range rows {
parseQuote(row, quotes)
}
close(quotes)
}()
// And finally...
count := 0
var err error
for quote := range quotes {
// ... push each quote into mongo
err = qc.Insert(quote)
if err != nil {
logging.Error("Awww: %v\n", err)
} else {
if count%1000 == 0 {
fmt.Printf("%d...", count)
}
count++
}
}
fmt.Println("done.")
logging.Info("Inserted %d quotes.\n", count)
}
示例15: bot_disconnected
func bot_disconnected(line *base.Line) {
// The read from this channel is in connectLoop
disconnected <- true
logging.Info("Disconnected...")
}