12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // Discordgo - Discord bindings for Go
- // Available at https://github.com/bwmarrin/discordgo
- // Copyright 2015-2016 Bruce Marriner <bruce@sqls.net>. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- // This file contains code related to discordgo package logging
- package discordgo
- import (
- "bytes"
- "encoding/json"
- "fmt"
- "log"
- "runtime"
- "strings"
- )
- const (
- LogError int = iota
- LogWarning
- LogNotice
- LogDebug
- )
- // TODO: Merge util.go code into here
- // dumps debug information to stdout
- func msglog(cfgL, msgL int, format string, a ...interface{}) {
- if msgL > cfgL {
- return
- }
- pc, file, line, _ := runtime.Caller(1)
- files := strings.Split(file, "/")
- file = files[len(files)-1]
- name := runtime.FuncForPC(pc).Name()
- fns := strings.Split(name, ".")
- name = fns[len(fns)-1]
- msg := fmt.Sprintf(format, a...)
- log.Printf("%s:%d:%s %s\n", file, line, name, msg)
- }
- func (s *Session) log(msgL int, format string, a ...interface{}) {
- if s.Debug { // Deprecated
- s.LogLevel = LogDebug
- }
- msglog(s.LogLevel, msgL, format, a...)
- }
- func (v *VoiceConnection) log(msgL int, format string, a ...interface{}) {
- if v.Debug { // Deprecated
- v.LogLevel = LogDebug
- }
- msglog(v.LogLevel, msgL, format, a...)
- }
- // printEvent prints out a WSAPI event.
- func printEvent(e *Event) {
- log.Println(fmt.Sprintf("Event. Type: %s, State: %d Operation: %d Direction: %d", e.Type, e.State, e.Operation, e.Direction))
- printJSON(e.RawData)
- }
- // printJSON is a helper function to display JSON data in a easy to read format.
- func printJSON(body []byte) {
- var prettyJSON bytes.Buffer
- error := json.Indent(&prettyJSON, body, "", "\t")
- if error != nil {
- log.Print("JSON parse error: ", error)
- }
- log.Println(string(prettyJSON.Bytes()))
- }
|