diff --git a/cmd/podman/common/completion.go b/cmd/podman/common/completion.go
index d110fb1b52..6086df2973 100644
--- a/cmd/podman/common/completion.go
+++ b/cmd/podman/common/completion.go
@@ -21,7 +21,7 @@ var (
 	// ChangeCmds is the list of valid Change commands to passed to the Commit call
 	ChangeCmds = []string{"CMD", "ENTRYPOINT", "ENV", "EXPOSE", "LABEL", "ONBUILD", "STOPSIGNAL", "USER", "VOLUME", "WORKDIR"}
 	// LogLevels supported by podman
-	LogLevels = []string{"debug", "info", "warn", "warning", "error", "fatal", "panic"}
+	LogLevels = []string{"trace", "debug", "info", "warn", "warning", "error", "fatal", "panic"}
 )
 
 type completeType int
@@ -1009,7 +1009,7 @@ func AutocompleteEventBackend(cmd *cobra.Command, args []string, toComplete stri
 }
 
 // AutocompleteLogLevel - Autocomplete log level options.
-// -> "debug", "info", "warn", "error", "fatal", "panic"
+// -> "trace", "debug", "info", "warn", "error", "fatal", "panic"
 func AutocompleteLogLevel(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
 	return LogLevels, cobra.ShellCompDirectiveNoFileComp
 }
diff --git a/cmd/podman/root.go b/cmd/podman/root.go
index 4527c26460..9e5d2a2363 100644
--- a/cmd/podman/root.go
+++ b/cmd/podman/root.go
@@ -416,7 +416,11 @@ func formatError(err error) string {
 			strings.TrimSuffix(err.Error(), ": "+define.ErrOCIRuntime.Error()),
 		)
 	} else {
-		message = "Error: " + err.Error()
+		if logrus.IsLevelEnabled(logrus.TraceLevel) {
+			message = fmt.Sprintf("Error: %+v", err)
+		} else {
+			message = fmt.Sprintf("Error: %v", err)
+		}
 	}
 	return message
 }
diff --git a/pkg/errorhandling/errorhandling.go b/pkg/errorhandling/errorhandling.go
index b1923be98b..9dc545ebb1 100644
--- a/pkg/errorhandling/errorhandling.go
+++ b/pkg/errorhandling/errorhandling.go
@@ -24,6 +24,9 @@ func JoinErrors(errs []error) error {
 	if finalErr == nil {
 		return finalErr
 	}
+	if len(multiE.WrappedErrors()) == 1 && logrus.IsLevelEnabled(logrus.TraceLevel) {
+		return multiE.WrappedErrors()[0]
+	}
 	return errors.New(strings.TrimSpace(finalErr.Error()))
 }
 
diff --git a/test/system/001-basic.bats b/test/system/001-basic.bats
index 081bb11713..35107f0a0d 100644
--- a/test/system/001-basic.bats
+++ b/test/system/001-basic.bats
@@ -111,4 +111,17 @@ function setup() {
     is "$output" "you found me" "sample invocation of 'jq'"
 }
 
+@test "podman --log-level recognizes log levels" {
+    run_podman 1 --log-level=telepathic info
+    is "$output" 'Log Level "telepathic" is not supported.*'
+    run_podman --log-level=trace   info
+    run_podman --log-level=debug   info
+    run_podman --log-level=info    info
+    run_podman --log-level=warn    info
+    run_podman --log-level=warning info
+    run_podman --log-level=error   info
+    run_podman --log-level=fatal   info
+    run_podman --log-level=panic   info
+}
+
 # vim: filetype=sh