mirror of
https://github.com/jesseduffield/lazygit.git
synced 2024-12-04 10:34:55 +02:00
e0ecc9e835
I'll be honest, for all I know logging should be global in general: it is a pain to pass a logger to any struct that needs it. But smart people on the internet tell me otherwise, and I do like the idea of not having any global variables lying around. Nonetheless, I often need to log things when locally debugging and that's a different kind of logging than the kind you would include in the actual released binary. For example if I want to log something from gocui, I would rather not have gocui depend on lazygit's logging setup.
29 lines
592 B
Go
29 lines
592 B
Go
package tail
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
|
|
"github.com/aybabtme/humanlog"
|
|
)
|
|
|
|
// TailLogs lets us run `lazygit --logs` to print the logs produced by other lazygit processes.
|
|
// This makes for easier debugging.
|
|
func TailLogs(logFilePath string) {
|
|
fmt.Printf("Tailing log file %s\n\n", logFilePath)
|
|
|
|
opts := humanlog.DefaultOptions
|
|
opts.Truncates = false
|
|
|
|
_, err := os.Stat(logFilePath)
|
|
if err != nil {
|
|
if os.IsNotExist(err) {
|
|
log.Fatal("Log file does not exist. Run `lazygit --debug` first to create the log file")
|
|
}
|
|
log.Fatal(err)
|
|
}
|
|
|
|
tailLogsForPlatform(logFilePath, opts)
|
|
}
|