github.com/rajatvaryani/mattermost-server@v5.11.1+incompatible/cmd/mattermost/commands/logs.go (about) 1 // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package commands 5 6 import ( 7 "io" 8 "os" 9 10 "github.com/mattermost/mattermost-server/mlog/human" 11 "github.com/spf13/cobra" 12 ) 13 14 var LogsCmd = &cobra.Command{ 15 Use: "logs", 16 Short: "Display logs in a human-readable format", 17 RunE: logsCmdF, 18 } 19 20 func init() { 21 LogsCmd.Flags().Bool("logrus", false, "Use logrus for formatting.") 22 RootCmd.AddCommand(LogsCmd) 23 } 24 25 func logsCmdF(command *cobra.Command, args []string) error { 26 // check stdin to see if we have a pipe 27 fi, err := os.Stdin.Stat() 28 if err != nil { 29 return err 30 } 31 32 var input io.Reader 33 if fi.Size() == 0 && fi.Mode()&os.ModeNamedPipe == 0 { 34 file, err := os.Open("mattermost.log") 35 if err != nil { 36 return err 37 } 38 defer file.Close() 39 input = file 40 } else { 41 input = os.Stdin 42 } 43 var writer human.LogWriter 44 45 if flag, _ := command.Flags().GetBool("logrus"); flag { 46 writer = human.NewLogrusWriter(os.Stdout) 47 } else { 48 writer = human.NewSimpleWriter(os.Stdout) 49 } 50 human.ProcessLogs(input, writer) 51 52 return nil 53 }