Documentation

Overview

    Package stdlog provides simple and fast logging to the standard output (stdout) and is optimized for programs launched via a shell or cron. It can also be used to log to a file by redirecting the standard output to a file. This package is thread-safe.

    Basic examples:

    logger := stdlog.GetFromFlags()
    logger.Info("Connecting to the server...")
    logger.Errorf("Connection failed: %q", err)
    

    Will output:

    2014-04-02 18:09:15.862 INFO Connecting to the API...
    2014-04-02 18:10:14.347 ERROR Connection failed (Server is unavailable).
    

    Log*() functions can be used to avoid evaluating arguments when it is expensive and unnecessary:

    logger.Debug("Memory usage: %s", getMemoryUsage())
    if LogDebug() { logger.Debug("Memory usage: %s", getMemoryUsage()) }
    

    If debug logging is off the getMemoryUsage() will be executed on the first line while it will not be executed on the second line.

    List of command-line arguments:

    -log=info
        Log events at or above this level are logged.
    -stderr=false
        Logs are written to standard error (stderr) instead of standard
        output.
    -flushlog=none
        Until this level is reached nothing is output and logs are stored
        in the memory. Once a log event is at or above this level, it
        outputs all logs in memory as well as the future log events. This
        feature should not be used with long-running processes.
    

    The available levels are the eight ones described in RFC 5424 (debug, info, notice, warning, error, critical, alert, emergency) and none.

    Some use cases:

    - By default, all logs except debug ones are output to the stdout. Which
      is useful to follow the execution of a program launched via a shell.
    - A program launched by a crontab where the variable `MAILTO` is set
      with `-debug -flushlog=error` will send all logs generated by the
      program only if an error happens. When there is no error the email
      will not be sent.
    - `my_program > /var/log/my_program/my_program-$(date+%Y-%m-%d-%H%M%S).log`
      will create a log file in /var/log/my_program each time it is run.
    

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func GetFromFlags

    func GetFromFlags() log.Logger

      GetFromFlags returns the logger defined by the command-line flags. This function runs flag.Parse() if it has not been run yet.

      Types

      This section is empty.

      Source Files