Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions cmd/podman/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,7 @@ func before(cmd *cobra.Command, args []string) error {
logrus.Errorf(err.Error())
os.Exit(1)
}
if err := setSyslog(); err != nil {
return err
}

if err := setupRootless(cmd, args); err != nil {
return err
}
Expand All @@ -121,6 +119,9 @@ func before(cmd *cobra.Command, args []string) error {
return err
}
logrus.SetLevel(level)
if err := setSyslog(); err != nil {
return err
}

if err := setRLimits(); err != nil {
return err
Expand Down
39 changes: 37 additions & 2 deletions cmd/podman/main_remote.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,13 @@
package main

import (
"fmt"
"os"
"os/user"
"path/filepath"

"github.com/docker/docker/pkg/homedir"
"github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)

Expand All @@ -20,11 +25,41 @@ func init() {
rootCmd.PersistentFlags().StringVar(&MainGlobalOpts.RemoteUserName, "username", username, "username on the remote host")
rootCmd.PersistentFlags().StringVar(&MainGlobalOpts.RemoteHost, "remote-host", "", "remote host")
// TODO maybe we allow the altering of this for bridge connections?
//rootCmd.PersistentFlags().StringVar(&MainGlobalOpts.VarlinkAddress, "varlink-address", adapter.DefaultAddress, "address of the varlink socket")
rootCmd.PersistentFlags().StringVar(&MainGlobalOpts.LogLevel, "log-level", "error", "Log messages above specified level: debug, info, warn, error, fatal or panic")
// rootCmd.PersistentFlags().StringVar(&MainGlobalOpts.VarlinkAddress, "varlink-address", adapter.DefaultAddress, "address of the varlink socket")
rootCmd.PersistentFlags().StringVar(&MainGlobalOpts.LogLevel, "log-level", "error", "Log messages above specified level: debug, info, warn, error, fatal or panic. Logged to ~/.config/containers/podman.log")
rootCmd.PersistentFlags().BoolVar(&MainGlobalOpts.Syslog, "syslog", false, "Output logging information to syslog as well as the console")
}

func setSyslog() error {
// Log to file if not using syslog
homeDir := homedir.Get()
path := filepath.Join(homeDir, ".config", "containers")

if _, err := os.Stat(path); os.IsNotExist(err) {
if err := os.MkdirAll(path, 0750); err != nil {
fmt.Fprintf(os.Stderr, "%v", err)
return err
}
}

// Update path to include file name
path = filepath.Join(path, "podman.log")

// Create the log file if doesn't exist. And append to it if it already exists.
file, err := os.OpenFile(path, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0640)
if err != nil {
// Cannot open log file. Logging to stderr
fmt.Fprintf(os.Stderr, "%v", err)
return err
} else {
formatter := new(logrus.TextFormatter)
formatter.FullTimestamp = true
logrus.SetFormatter(formatter)
logrus.SetOutput(file)
}

// Note this message is only logged if --log-level >= Info!
logrus.Infof("Logging level set to %s", logrus.GetLevel().String())
return nil
}

Expand Down
2 changes: 2 additions & 0 deletions docs/podman.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ Storage driver option, Default storage driver options are configured in /etc/con

output logging information to syslog as well as the console

On remote clients, logging is directed to the file ~/.config/containers/podman.log

**--version**, **-v**

Print the version
Expand Down