Skip to content

Commit 58b821d

Browse files
committed
feat: write logs to file instead of stdout & enable access log
1 parent b9782cc commit 58b821d

File tree

3 files changed

+41
-0
lines changed

3 files changed

+41
-0
lines changed

docker-compose.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,26 @@ services:
1515
- --providers.docker.exposedbydefault=false
1616
- --providers.file.filename=/etc/traefik/certs.toml
1717
- --api
18+
19+
# Writing Logs to a file
20+
- --log.filePath=/logs/traefik.log
21+
# supports common (Common Log Format) or json
22+
- --log.format=${LOG_FORMAT:-common}
23+
# Configuring a buffer of 100 lines
24+
- --accesslog=${ACCESSLOG:-true}
25+
- --accesslog.filepath=/logs/access.log
26+
- --accesslog.bufferingsize=${ACCESSLOG_BUFFERINGSIZE:-100}
27+
28+
# access log fields
29+
# Limiting the Logs to Specific Fields
30+
- --accesslog.fields.defaultmode=${ACCESSLOG_FIELDS_DEFAULTMODE:-keep}
31+
- --accesslog.fields.names.ClientUsername=${ACCESSLOG_FIELDS_NAMES_CLIENTUSERNAME:-keep}
32+
- --accesslog.fields.headers.defaultmode=${ACCESSLOG_FIELDS_HEADERS_DEFAULTMODE:-keep}
33+
- --accesslog.fields.headers.names.User-Agent=${ACCESSLOG_FIELDS_HEADERS_NAMES_USER_AGENT:-keep}
34+
- --accesslog.fields.headers.names.Authorization=${ACCESSLOG_FIELDS_HEADERS_NAMES_AUTHORIZATION:-keep}
35+
- --accesslog.fields.headers.names.Content-Type=${ACCESSLOG_FIELDS_HEADERS_NAMES_CONTENT_TYPE:-keep}
36+
37+
# cert resolvers
1838
- --certificatesresolvers.le.acme.caserver=${CA_SERVER}
1939
- --certificatesresolvers.le.acme.email=${EMAIL}
2040
- --certificatesresolvers.le.acme.storage=/acme.json
@@ -33,6 +53,7 @@ services:
3353
- "${CERT_PATH}:/certs"
3454
- "${ACME_PATH}:/acme.json"
3555
- "${CONFIG_PATH}:/etc/traefik"
56+
- "${LOG_PATH:-./logs}:/logs"
3657
- "${PROVIDER_ENV_FILE_VALUE}:/provider.key:ro"
3758
- "/var/run/docker.sock:/var/run/docker.sock:ro"
3859
labels:

env.example

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,21 @@ PROVIDER_ENV_FILE=DO_AUTH_TOKEN_FILE
4242
# (API key must have READ, WRITE access to provider i.e. digitalocean)
4343
# don't forget to `chmod 600` it.
4444
PROVIDER_ENV_FILE_VALUE=./provider.key
45+
46+
# log file path on host machine
47+
LOG_PATH=./logs
48+
49+
# log format
50+
LOG_FORMAT=common
51+
52+
# Access log config
53+
ACCESSLOG=true
54+
ACCESSLOG_BUFFERINGSIZE=100
55+
# access log fields
56+
# Limiting the Logs to Specific Fields
57+
ACCESSLOG_FIELDS_DEFAULTMODE=keep
58+
ACCESSLOG_FIELDS_NAMES_CLIENTUSERNAME=keep
59+
ACCESSLOG_FIELDS_HEADERS_DEFAULTMODE=keep
60+
ACCESSLOG_FIELDS_HEADERS_NAMES_USER_AGENT=keep
61+
ACCESSLOG_FIELDS_HEADERS_NAMES_AUTHORIZATION=keep
62+
ACCESSLOG_FIELDS_HEADERS_NAMES_CONTENT_TYPE=keep

logs/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*
2+
!.gitignore

0 commit comments

Comments
 (0)