Skip to content

Commit

Permalink
Create log file in append mode (influxdata#5497)
Browse files Browse the repository at this point in the history
  • Loading branch information
sergeykhegay authored and otherpirate committed Mar 15, 2019
1 parent bad226b commit abd1edf
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 10 deletions.
14 changes: 4 additions & 10 deletions logger/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,16 +50,10 @@ func SetupLogging(debug, quiet bool, logfile string) {

var oFile *os.File
if logfile != "" {
if _, err := os.Stat(logfile); os.IsNotExist(err) {
if oFile, err = os.Create(logfile); err != nil {
log.Printf("E! Unable to create %s (%s), using stderr", logfile, err)
oFile = os.Stderr
}
} else {
if oFile, err = os.OpenFile(logfile, os.O_APPEND|os.O_WRONLY, os.ModeAppend); err != nil {
log.Printf("E! Unable to append to %s (%s), using stderr", logfile, err)
oFile = os.Stderr
}
var err error
if oFile, err = os.OpenFile(logfile, os.O_CREATE|os.O_APPEND|os.O_WRONLY, os.ModeAppend|0644); err != nil {
log.Printf("E! Unable to open %s (%s), using stderr", logfile, err)
oFile = os.Stderr
}
} else {
oFile = os.Stderr
Expand Down
23 changes: 23 additions & 0 deletions logger/logger_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,29 @@ func TestAddDefaultLogLevel(t *testing.T) {
assert.Equal(t, f[19:], []byte("Z I! TEST\n"))
}

func TestWriteToTruncatedFile(t *testing.T) {
tmpfile, err := ioutil.TempFile("", "")
assert.NoError(t, err)
defer func() { os.Remove(tmpfile.Name()) }()

SetupLogging(true, false, tmpfile.Name())
log.Printf("TEST")

f, err := ioutil.ReadFile(tmpfile.Name())
assert.NoError(t, err)
assert.Equal(t, f[19:], []byte("Z I! TEST\n"))

tmpf, err := os.OpenFile(tmpfile.Name(), os.O_TRUNC, 0644)
assert.NoError(t, err)
assert.NoError(t, tmpf.Close())

log.Printf("SHOULD BE FIRST")

f, err = ioutil.ReadFile(tmpfile.Name())
assert.NoError(t, err)
assert.Equal(t, f[19:], []byte("Z I! SHOULD BE FIRST\n"))
}

func BenchmarkTelegrafLogWrite(b *testing.B) {
var msg = []byte("test")
var buf bytes.Buffer
Expand Down

0 comments on commit abd1edf

Please sign in to comment.