Implement logfile and print on stdout and the logfile per default

This commit is contained in:
Bernhard Froehlich
2018-12-20 09:17:40 +00:00
parent 58d124b20d
commit 88d85458dc
2 changed files with 16 additions and 0 deletions

13
main.go
View File

@@ -3,9 +3,11 @@ package main
import (
"crypto/tls"
"flag"
"io"
"log"
"net"
"net/smtp"
"os"
"strings"
"time"
@@ -14,6 +16,7 @@ import (
)
var (
logFile = flag.String("logfile", "/var/log/smtpd-proxy.log", "Path to logfile")
hostName = flag.String("hostname", "localhost.localdomain", "Server hostname")
welcomeMsg = flag.String("welcome_msg", "", "Welcome message for SMTP session")
listen = flag.String("listen", "127.0.0.1:25 [::1]:25", "Address and port to listen for incoming SMTP")
@@ -49,6 +52,16 @@ func main() {
iniflags.Parse()
if *logFile != "" {
f, err := os.OpenFile(*logFile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0600)
if err != nil {
log.Fatalf("Error opening logfile: %v", err)
}
defer f.Close()
wrt := io.MultiWriter(os.Stdout, f)
log.SetOutput(wrt)
}
listeners := strings.Split(*listen, " ")
for i := range(listeners) {

View File

@@ -1,5 +1,8 @@
; smtp-proxy configuration
; Logfile
;logfile = /var/log/smtpd-proxy.log
; Hostname for this SMTP server
;hostname = "localhost.localdomain"