From e8786d73bb5665b4d548781949e318af6967be03 Mon Sep 17 00:00:00 2001 From: Rolf Neugebauer Date: Wed, 11 Jul 2018 15:38:17 +0100 Subject: [PATCH 1/4] pkg/logwrite: Append .log to the log files Also simplify the code by directly storing the path to the log file in the LogFile structure. Signed-off-by: Rolf Neugebauer --- pkg/logwrite/logwrite.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/pkg/logwrite/logwrite.go b/pkg/logwrite/logwrite.go index c4f1aa399..b8667b745 100644 --- a/pkg/logwrite/logwrite.go +++ b/pkg/logwrite/logwrite.go @@ -62,15 +62,15 @@ func ParseLogMessage(line string) (*LogMessage, error) { // LogFile is where we write LogMessages to type LogFile struct { File *os.File // active file handle - Name string // filename of log file - Dir string // log file directory + Path string // Path to the logfile BytesWritten int // total number of bytes written so far } // NewLogFile creates a new LogFile. func NewLogFile(dir, name string) (*LogFile, error) { // If the log exists already we want to append to it. - f, err := os.OpenFile(filepath.Join(dir, name), os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0644) + p := filepath.Join(dir, name+".log") + f, err := os.OpenFile(p, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0644) if err != nil { return nil, err } @@ -80,8 +80,7 @@ func NewLogFile(dir, name string) (*LogFile, error) { } return &LogFile{ File: f, - Name: name, - Dir: dir, + Path: p, BytesWritten: int(fi.Size()), }, nil } @@ -106,15 +105,14 @@ func (l *LogFile) Rotate(maxLogFiles int) error { if err := l.File.Close(); err != nil { return err } - path := filepath.Join(l.Dir, l.Name) for i := maxLogFiles - 1; i >= 0; i-- { - newerFile := fmt.Sprintf("%s.%d", path, i-1) + newerFile := fmt.Sprintf("%s.%d", l.Path, i-1) // special case: if index is 0 we omit the suffix i.e. we expect // foo foo.1 foo.2 up to foo. if i == 0 { - newerFile = path + newerFile = l.Path } - olderFile := fmt.Sprintf("%s.%d", path, i) + olderFile := fmt.Sprintf("%s.%d", l.Path, i) // overwrite the olderFile with the newerFile err := os.Rename(newerFile, olderFile) if os.IsNotExist(err) { @@ -125,7 +123,7 @@ func (l *LogFile) Rotate(maxLogFiles int) error { return err } } - f, err := os.Create(path) + f, err := os.Create(l.Path) if err != nil { return err } From d92ca6d6e43e1a0bc5d35c2cfbb2d506e06e23c8 Mon Sep 17 00:00:00 2001 From: Rolf Neugebauer Date: Wed, 11 Jul 2018 15:48:14 +0100 Subject: [PATCH 2/4] tests: Adjust logging test to new .log extension Signed-off-by: Rolf Neugebauer --- test/cases/040_packages/030_logwrite/check.sh | 2 +- test/cases/040_packages/031_kmsg/check.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/cases/040_packages/030_logwrite/check.sh b/test/cases/040_packages/030_logwrite/check.sh index ac44a4385..2f84d237e 100755 --- a/test/cases/040_packages/030_logwrite/check.sh +++ b/test/cases/040_packages/030_logwrite/check.sh @@ -1,7 +1,7 @@ #!/bin/sh for i in $(seq 1 20); do - if [ -e /var/log/fill-the-logs.out.0 ]; then + if [ -e /var/log/fill-the-logs.out.log.0 ]; then printf "logwrite test suite PASSED\n" > /dev/console /sbin/poweroff -f fi diff --git a/test/cases/040_packages/031_kmsg/check.sh b/test/cases/040_packages/031_kmsg/check.sh index c6ccaf133..82b24083e 100755 --- a/test/cases/040_packages/031_kmsg/check.sh +++ b/test/cases/040_packages/031_kmsg/check.sh @@ -2,7 +2,7 @@ for i in $(seq 1 20); do # Look for a common kernel log message - if grep "SCSI subsystem initialized" /var/log/kmsg.out 2>/dev/null; then + if grep "SCSI subsystem initialized" /var/log/kmsg.out.log 2>/dev/null; then printf "kmsg test suite PASSED\n" > /dev/console /sbin/poweroff -f fi @@ -10,6 +10,6 @@ for i in $(seq 1 20); do done printf "kmsg test suite FAILED\n" > /dev/console -echo "contents of /var/log/kmsg.out:" > /dev/console -cat /var/log/kmsg.out > /dev/console +echo "contents of /var/log/kmsg.out.log:" > /dev/console +cat /var/log/kmsg.out.log > /dev/console /sbin/poweroff -f From 83f3c58c50e88cf333ab4d4c8060afdf79d057be Mon Sep 17 00:00:00 2001 From: Rolf Neugebauer Date: Wed, 11 Jul 2018 15:49:05 +0100 Subject: [PATCH 3/4] examples: Use alpine:3.8 in logging example Signed-off-by: Rolf Neugebauer --- examples/logging.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/logging.yml b/examples/logging.yml index ac8d96a9d..cff77bf96 100644 --- a/examples/logging.yml +++ b/examples/logging.yml @@ -22,7 +22,7 @@ services: - INSECURE=true # A service which generates log messages for testing - name: write-to-the-logs - image: alpine + image: alpine:3.8 command: ["/bin/sh", "-c", "while /bin/true; do echo hello $(date); sleep 1; done" ] - name: write-and-rotate-logs image: linuxkit/logwrite:v0.5 From 71b5dc8010fb5ff8759710c96b1c6fa6393a92ad Mon Sep 17 00:00:00 2001 From: Rolf Neugebauer Date: Wed, 11 Jul 2018 17:13:40 +0100 Subject: [PATCH 4/4] Update YAMLs to new logwrite package Signed-off-by: Rolf Neugebauer --- examples/logging.yml | 2 +- test/cases/040_packages/030_logwrite/test.yml | 2 +- test/cases/040_packages/031_kmsg/test.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/logging.yml b/examples/logging.yml index cff77bf96..af4981a2e 100644 --- a/examples/logging.yml +++ b/examples/logging.yml @@ -25,7 +25,7 @@ services: image: alpine:3.8 command: ["/bin/sh", "-c", "while /bin/true; do echo hello $(date); sleep 1; done" ] - name: write-and-rotate-logs - image: linuxkit/logwrite:v0.5 + image: linuxkit/logwrite:d9778c0d538094d398cf0cbfc89277aeca67f1be - name: kmsg image: linuxkit/kmsg:v0.5 trust: diff --git a/test/cases/040_packages/030_logwrite/test.yml b/test/cases/040_packages/030_logwrite/test.yml index 7b7ac06d7..0e98feeee 100644 --- a/test/cases/040_packages/030_logwrite/test.yml +++ b/test/cases/040_packages/030_logwrite/test.yml @@ -13,7 +13,7 @@ services: image: alpine command: ["/bin/sh", "-c", "while /bin/true; do echo hello $(date); done" ] - name: write-and-rotate-logs - image: linuxkit/logwrite:v0.5 + image: linuxkit/logwrite:d9778c0d538094d398cf0cbfc89277aeca67f1be command: ["/usr/bin/logwrite", "-max-log-size", "1024"] - name: check-the-logs image: alpine:3.8 diff --git a/test/cases/040_packages/031_kmsg/test.yml b/test/cases/040_packages/031_kmsg/test.yml index b0ee290bb..717b1d6c0 100644 --- a/test/cases/040_packages/031_kmsg/test.yml +++ b/test/cases/040_packages/031_kmsg/test.yml @@ -11,7 +11,7 @@ services: - name: kmsg image: linuxkit/kmsg:v0.5 - name: write-and-rotate-logs - image: linuxkit/logwrite:v0.5 + image: linuxkit/logwrite:d9778c0d538094d398cf0cbfc89277aeca67f1be - name: check-the-logs image: alpine:3.8 binds: