Person Github
Die Methode der Protokollumleitung hängt von der Programmiersprache, dem Framework und der Protokollierungsbibliothek ab, die Sie verwenden. Hier sind einige gängige Methoden:
1. Python (mit logging
Bibliothek)
In Python können Sie die Protokollierung auf die Standardausgabe (stdout) umleiten:
import logging
import sys
logging.basicConfig(stream=sys.stdout, level=logging.DEBUG)
logging.debug("This will go to stdout")
2. Node.js (mit console.log
)
In Node.js console.log
und console.error
standardmäßig in stdout und stderr ausgegeben, sodass Sie keine zusätzliche Konfiguration vornehmen müssen.
3. Java (mit Log4j)
In der Log4j-Konfigurationsdatei können Sie die Protokollausgabe auf stdout setzen:
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
4. Shell-Skript
In einem Shell-Skript können Sie den Umleitungsoperator verwenden:
# Redirect stdout to a file
./your_script.sh > output.log
# Redirect stderr to a file
./your_script.sh 2> error.log
# Redirect both stdout and stderr to a file
./your_script.sh &> both.log
5. Docker Compose
Wenn Ihre Anwendung in einer Docker Compose-Datei Protokolle an stdout und stderr ausgibt, können Sie den Protokolltreiber von Docker verwenden, um diese Protokolle zu sammeln:
services:
your_service:
image: your_image
logging:
driver: "json-file"
options:
max-size: "200k"
max-file: "10"
Auf diese Weise können Sie docker logs <container_id>
diese Protokolle anzeigen.
6. Andere Anwendungen und Dienste
Viele moderne Anwendungen und Dienste (wie Nginx, Apache usw.) verfügen über Konfigurationsoptionen, mit denen Sie Protokolle nach stdout und stderr umleiten können.
Wie Sie dies implementieren, hängt von Ihrer Anwendung und dem von Ihnen verwendeten Technologie-Stack ab. Ich hoffe, diese Beispiele können Sie inspirieren!