Python -Fehlerprotokollspeicherort
Posted: 20 Aug 2025, 06:15
Ich entwickle eine Python -Anwendung auf Flask Framework. Und ich benutze .Wsgi , um es bereitzustellen. Ich wurde durch Fehlerprotokollorte verwirrt. Es sieht so aus, als würden Python -Fehler und Debugginformationen in verschiedene Protokolldateien eingefügt.
Ich weiß auch, dass es einen anderen Apache Fehlerprotokoll gibt,/var/log/httpd/error_log . Meine Zugriffsprotokolle wurden an den richtigen Ort gedruckt, /homedir/access.log . < /p>
, aber Fehlerprotokoll sieht seltsam aus. Die Python -Fehler wie SyntaxError , die nicht erfassten Ausnahmen gingen in die in Vhost Datei angegebene Protokolldatei (Datei (Code> (). Allerdings gingen alle vom Python -Logging -Modul generierten Protokollnachrichten zum Fehlerprotokoll "Standard" (Standard "
, aber das Protokoll geht zu/var/log/httpd/error_log und nicht zu dem in Apache Vhost -Datei angegebenen Protokoll.
Code: Select all
...
CustomLog /homedir/access.log common
ErrorLog /homedir/error.log
...
, aber Fehlerprotokoll sieht seltsam aus. Die Python -Fehler wie SyntaxError , die nicht erfassten Ausnahmen gingen in die in Vhost Datei angegebene Protokolldatei (Datei (Code> (
Code: Select all
/homedir/error.log
Code: Select all
/var/log/httpd/error_log< /code>). < /p>
Kann jemand erklären, warum dies geschieht und wie es behoben werden kann? Ich möchte, dass diese beiden Protokolle an denselben Ort gehen. < /p>
Danke für die Kommentare. Hier ist der Code, den ich Logger < /p>
eingerichteimport logging
# I didn't specify the stream, so it suppose to be stderr
# Don't know why stderr points to apache /var/log/*, rather than my error log
stream_handler = logging.StreamHandler()
formatter = logging.Formatter("%(levelname)s : %(pathname)s:%(lineno)s - %(msg)s")
stream_handler.setFormatter(formatter)
logger = logging.getLogger('foo')
logger.addHandler(stream_handler)
logger.setLevel(logging.DEBUG)
< /code>
Dann habe ich Nachrichten auf diese Weise angemeldet. < /p>
import logging
logger = logging.getLogger('foo.bar')
logger.debug('Some debug information')