From 1504ea3509fc9f62e543faf7b6959b2127bad46c Mon Sep 17 00:00:00 2001 From: tomleb Date: Sat, 22 May 2021 19:29:49 -0400 Subject: [PATCH] Add -logdir flag (#1039) This allow configuring the various logs that may be outputted (transcoder and future logs) --- config/config.go | 8 ++++++++ core/transcoder/transcoder.go | 6 +++--- main.go | 5 +++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/config/config.go b/config/config.go index 3e3cf1054..333f2c77b 100644 --- a/config/config.go +++ b/config/config.go @@ -1,6 +1,7 @@ package config import ( + "path/filepath" "fmt" ) @@ -9,6 +10,9 @@ import ( // DatabaseFilePath is the path to the file ot be used as the global database for this run of the application. var DatabaseFilePath = "data/owncast.db" +// LogDirectory is the path to various log files +var LogDirectory = "." + // EnableDebugFeatures will print additional data to help in debugging. var EnableDebugFeatures = false @@ -38,3 +42,7 @@ func GetReleaseString() string { return fmt.Sprintf("Owncast v%s-%s (%s)", versionNumber, buildPlatform, gitCommit) } + +func GetTranscoderLogFilePath() string { + return filepath.Join(LogDirectory, "transcoder.log") +} diff --git a/core/transcoder/transcoder.go b/core/transcoder/transcoder.go index 1a40e8a07..5299d96df 100644 --- a/core/transcoder/transcoder.go +++ b/core/transcoder/transcoder.go @@ -101,7 +101,7 @@ func (t *Transcoder) Start() { err = _commandExec.Start() if err != nil { - log.Errorln("Transcoder error. See transcoder.log for full output to debug.") + log.Errorln("Transcoder error. See ", config.GetTranscoderLogFilePath(), " for full output to debug.") log.Panicln(err, command) } @@ -119,7 +119,7 @@ func (t *Transcoder) Start() { } if err != nil { - log.Errorln("transcoding error. look at transcoder.log to help debug. your copy of ffmpeg may not support your selected codec of", t.codec.Name(), "https://owncast.online/docs/troubleshooting/#codecs") + log.Errorln("transcoding error. look at ", config.GetTranscoderLogFilePath(), " to help debug. your copy of ffmpeg may not support your selected codec of", t.codec.Name(), "https://owncast.online/docs/troubleshooting/#codecs") } } @@ -142,7 +142,7 @@ func (t *Transcoder) getString() string { hlsOptionsString = "-hls_flags " + strings.Join(hlsOptionFlags, "+") } ffmpegFlags := []string{ - `FFREPORT=file="transcoder.log":level=32`, + fmt.Sprintf(`FFREPORT=file="%s":level=32`, config.GetTranscoderLogFilePath()), t.ffmpegPath, "-hide_banner", "-loglevel warning", diff --git a/main.go b/main.go index 267cb21d7..e685bcadf 100644 --- a/main.go +++ b/main.go @@ -37,6 +37,7 @@ func main() { configFile := flag.String("configFile", "config.yaml", "Config file path to migrate to the new database") dbFile := flag.String("database", "", "Path to the database file.") + logDirectory := flag.String("logdir", "", "Directory where logs will be written to") enableDebugOptions := flag.Bool("enableDebugFeatures", false, "Enable additional debugging options.") enableVerboseLogging := flag.Bool("enableVerboseLogging", false, "Enable additional logging.") restoreDatabaseFile := flag.String("restoreDatabase", "", "Restore an Owncast database backup") @@ -58,6 +59,10 @@ func main() { } log.Infoln(config.GetReleaseString()) + if *logDirectory != "" { + config.LogDirectory = *logDirectory + } + // Create the data directory if needed if !utils.DoesFileExists("data") { os.Mkdir("./data", 0700)