package revel import ( "github.com/revel/revel/logger" ) //Logger var ( // The root log is what all other logs are branched from, meaning if you set the handler for the root // it will adjust all children RootLog = logger.New() // This logger is the application logger, use this for your application log messages - ie jobs and startup, // Use Controller.Log for Controller logging // The requests are logged to this logger with the context of `section:requestlog` AppLog = RootLog.New("module", "app") // This is the logger revel writes to, added log messages will have a context of module:revel in them // It is based off of `RootLog` RevelLog = RootLog.New("module", "revel") // This is the handler for the AppLog, it is stored so that if the AppLog is changed it can be assigned to the // new AppLog appLogHandler *logger.CompositeMultiHandler // This oldLog is the revel logger, historical for revel, The application should use the AppLog or the Controller.oldLog // DEPRECATED oldLog = AppLog.New("section", "deprecated") // System logger SysLog = AppLog.New("section", "system") ) // Initialize the loggers first func init() { //RootLog.SetHandler( // logger.LevelHandler(logger.LogLevel(log15.LvlDebug), // logger.StreamHandler(os.Stdout, logger.TerminalFormatHandler(false, true)))) initLoggers() OnAppStart(initLoggers, -5) } func initLoggers() { appHandle := logger.InitializeFromConfig(BasePath, Config) // Set all the log handlers setAppLog(AppLog, appHandle) } // Set the application log and handler, if handler is nil it will // use the same handler used to configure the application log before func setAppLog(appLog logger.MultiLogger, appHandler *logger.CompositeMultiHandler) { if appLog != nil { AppLog = appLog } if appHandler != nil { appLogHandler = appHandler // Set the app log and the handler for all forked loggers RootLog.SetHandler(appLogHandler) // Set the system log handler - this sets golang writer stream to the // sysLog router logger.SetDefaultLog(SysLog) SysLog.SetStackDepth(5) SysLog.SetHandler(appLogHandler) } }