mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
05df642f3e
Currently if a `log_file_path` is defined Authelia will redirect all logging from standard output to said defined location. This change allows users to keep standard output logging along with a defined `log_file_path`.
82 lines
1.7 KiB
Go
82 lines
1.7 KiB
Go
package logging
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"log"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestShouldWriteLogsToFile(t *testing.T) {
|
|
dir, err := ioutil.TempDir("/tmp", "logs-dir")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
defer os.RemoveAll(dir)
|
|
|
|
path := fmt.Sprintf("%s/authelia.log", dir)
|
|
err = InitializeLogger("text", path, false)
|
|
require.NoError(t, err)
|
|
|
|
Logger().Info("This is a test")
|
|
|
|
f, err := os.OpenFile(path, os.O_RDONLY, 0)
|
|
require.NoError(t, err)
|
|
|
|
b, err := ioutil.ReadAll(f)
|
|
require.NoError(t, err)
|
|
|
|
assert.Contains(t, string(b), "level=info msg=\"This is a test\"\n")
|
|
}
|
|
|
|
func TestShouldWriteLogsToFileAndStdout(t *testing.T) {
|
|
dir, err := ioutil.TempDir("/tmp", "logs-dir")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
defer os.RemoveAll(dir)
|
|
|
|
path := fmt.Sprintf("%s/authelia.log", dir)
|
|
err = InitializeLogger("text", path, true)
|
|
require.NoError(t, err)
|
|
|
|
Logger().Info("This is a test")
|
|
|
|
f, err := os.OpenFile(path, os.O_RDONLY, 0)
|
|
require.NoError(t, err)
|
|
|
|
b, err := ioutil.ReadAll(f)
|
|
require.NoError(t, err)
|
|
|
|
assert.Contains(t, string(b), "level=info msg=\"This is a test\"\n")
|
|
}
|
|
|
|
func TestShouldFormatLogsAsJSON(t *testing.T) {
|
|
dir, err := ioutil.TempDir("/tmp", "logs-dir")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
defer os.RemoveAll(dir)
|
|
|
|
path := fmt.Sprintf("%s/authelia.log", dir)
|
|
err = InitializeLogger("json", path, false)
|
|
require.NoError(t, err)
|
|
|
|
Logger().Info("This is a test")
|
|
|
|
f, err := os.OpenFile(path, os.O_RDONLY, 0)
|
|
require.NoError(t, err)
|
|
|
|
b, err := ioutil.ReadAll(f)
|
|
require.NoError(t, err)
|
|
|
|
assert.Contains(t, string(b), "{\"level\":\"info\",\"msg\":\"This is a test\",")
|
|
}
|