1
0
mirror of https://github.com/amir20/dozzle.git synced 2025-12-24 06:28:42 +01:00

chore(docs): adds a page about logs on file

This commit is contained in:
Amir Raminfar
2023-07-12 09:39:02 -07:00
parent a9eb17cce3
commit 53ad92c60d
2 changed files with 22 additions and 0 deletions

View File

@@ -67,6 +67,7 @@ export default defineConfig({
{ text: "Healthcheck", link: "/guide/healthcheck" },
{ text: "Remote Hosts", link: "/guide/remote-hosts" },
{ text: "Supported Env Vars", link: "/guide/supported-env-vars" },
{ text: "Logging Files on Disk", link: "/guide/log-files-on-disk" },
{ text: "Analytics", link: "/guide/analytics" },
],
},

View File

@@ -0,0 +1,21 @@
---
title: Following Log Files on Disk
---
# Following Log Files on Disk
Some containers do not write logs to `sysout` or `syserr`. Many folks have asked if Dozzle can also show logs that are written to files. Unfortunately, files in containers are not accessible to other containers and so Dozzle wouldn't have a way to access these files. Dozzle can only access logs written to `sysout` or `syserr` which is the same functionality of `docker logs` command.
If you are creating a service using Docker then make sure to write logs to streams. An application should not attempt to write to logfiles. Instead delegate the logging to Docker. The [twelve factor app](https://12factor.net/logs) has a great principle around logging that explains the importance of this principle.
However, there are workarounds to be able to still access files using mounts.
## Mounting Local Log Files with Alpine
Dozzle reads any output stream. This can be used in combination with alpine to `tail` a mounted file. An example of this is:
```sh
docker run -v /var/log/system.log:/var/log/test.log alpine tail -f /var/log/test.log
```
In the above example `/var/log/system.log` is mounted from the host and used with `tail -f` to follow the file. `tail` is smart to follow log rotations. During my testing, using alpine only uses about `300KB` of memory.