Source File
alt_exit.go
Belonging Package
github.com/sirupsen/logrus
package logrus// The following code was sourced and modified from the// https://github.com/tebeka/atexit package governed by the following license://// Copyright (c) 2012 Miki Tebeka <miki.tebeka@gmail.com>.//// Permission is hereby granted, free of charge, to any person obtaining a copy of// this software and associated documentation files (the "Software"), to deal in// the Software without restriction, including without limitation the rights to// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of// the Software, and to permit persons to whom the Software is furnished to do so,// subject to the following conditions://// The above copyright notice and this permission notice shall be included in all// copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.import ()var handlers = []func(){}func ( func()) {defer func() {if := recover(); != nil {fmt.Fprintln(os.Stderr, "Error: Logrus exit handler error:", )}}()()}func () {for , := range handlers {runHandler()}}// Exit runs all the Logrus atexit handlers and then terminates the program using os.Exit(code)func ( int) {runHandlers()os.Exit()}// RegisterExitHandler appends a Logrus Exit handler to the list of handlers,// call logrus.Exit to invoke all handlers. The handlers will also be invoked when// any Fatal log entry is made.//// This method is useful when a caller wishes to use logrus to log a fatal// message but also needs to gracefully shutdown. An example usecase could be// closing database connections, or sending a alert that the application is// closing.func ( func()) {handlers = append(handlers, )}// DeferExitHandler prepends a Logrus Exit handler to the list of handlers,// call logrus.Exit to invoke all handlers. The handlers will also be invoked when// any Fatal log entry is made.//// This method is useful when a caller wishes to use logrus to log a fatal// message but also needs to gracefully shutdown. An example usecase could be// closing database connections, or sending a alert that the application is// closing.func ( func()) {handlers = append([]func(){}, handlers...)}
![]() |
The pages are generated with Golds v0.3.6. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |