Changeset 747 in code


Ignore:
Timestamp:
Dec 6, 2021, 5:35:49 PM (4 years ago)
Author:
contact
Message:

Add Logger.Debugf

Makes it easy to print debugging messages which aren't targeted at
the user. See [1] for motivation.

[1]: https://dave.cheney.net/2015/11/05/lets-talk-about-logging

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/cmd/soju/main.go

    r713 r747  
    9898                MultiUpstream:   raw.MultiUpstream,
    9999                UpstreamUserIPs: raw.UpstreamUserIPs,
    100                 Debug:           debug,
    101100                MOTD:            motd,
    102101        }
     
    141140        srv := soju.NewServer(db)
    142141        srv.SetConfig(serverCfg)
     142        srv.Logger = soju.NewLogger(log.Writer(), debug)
    143143
    144144        for _, listen := range cfg.Listen {
  • trunk/conn.go

    r741 r747  
    157157                        }
    158158
    159                         if c.srv.Config().Debug {
    160                                 c.logger.Printf("sent: %v", msg)
    161                         }
     159                        c.logger.Debugf("sent: %v", msg)
    162160                        c.conn.SetWriteDeadline(time.Now().Add(writeTimeout))
    163161                        if err := c.conn.WriteMessage(msg); err != nil {
     
    211209        }
    212210
    213         if c.srv.Config().Debug {
    214                 c.logger.Printf("received: %v", msg)
    215         }
    216 
     211        c.logger.Debugf("received: %v", msg)
    217212        return msg, nil
    218213}
  • trunk/server.go

    r746 r747  
    3939type Logger interface {
    4040        Printf(format string, v ...interface{})
     41        Debugf(format string, v ...interface{})
     42}
     43
     44type logger struct {
     45        *log.Logger
     46        debug bool
     47}
     48
     49func (l logger) Debugf(format string, v ...interface{}) {
     50        if !l.debug {
     51                return
     52        }
     53        l.Logger.Printf(format, v...)
     54}
     55
     56func NewLogger(out io.Writer, debug bool) Logger {
     57        return logger{
     58                Logger: log.New(log.Writer(), "", log.LstdFlags),
     59                debug:  debug,
     60        }
    4161}
    4262
     
    5171        v = append([]interface{}{l.prefix}, v...)
    5272        l.logger.Printf("%v"+format, v...)
     73}
     74
     75func (l *prefixLogger) Debugf(format string, v ...interface{}) {
     76        v = append([]interface{}{l.prefix}, v...)
     77        l.logger.Debugf("%v"+format, v...)
    5378}
    5479
     
    7398        Title           string
    7499        LogPath         string
    75         Debug           bool
    76100        HTTPOrigins     []string
    77101        AcceptProxyIPs  config.IPSet
     
    110134func NewServer(db Database) *Server {
    111135        srv := &Server{
    112                 Logger:    log.New(log.Writer(), "", log.LstdFlags),
     136                Logger:    NewLogger(log.Writer(), true),
    113137                db:        db,
    114138                listeners: make(map[net.Listener]struct{}),
Note: See TracChangeset for help on using the changeset viewer.