[Python] Vorsichtsmaßnahmen, wenn es nicht funktioniert, auch wenn TimedRotatingFileHandler in basicConfig in Python2 festgelegt ist

Einführung

Dies ist die Geschichte, wenn Sie logrotate mit der Anmeldung in Python verwenden.

In python2 (es kann nicht geholfen werden) habe ich in logging.basicConfig Hände angegeben und TimedRotatingFileHandler verwendet, aber aus irgendeinem Grund wurde es nicht einmal in die angegebene Protokolldatei geschrieben, und natürlich wurde auch keine Protokollrotation durchgeführt. Aber wenn ich es in Python3 starte, funktioniert es.

Ich dachte, ich wäre mir nicht sicher, also habe ich es auf eine andere Weise gelöst, also werde ich es aufschreiben.

Jemand sagte, dass es mit einigen Versionen von Python2 nicht funktioniert, Geben Sie dies überhaupt an? Ich würde mich freuen, wenn Sie mir einige Informationen geben könnten.

** Ich habe es im Postscript geschrieben, aber ich habe Informationen aus dem Inneren des Unternehmens erhalten und es wurde klar, warum es nicht funktioniert hat! Vielen Dank. .. ** ** **

Inhalt

Fazit

Zusammenfassend hat das Beissen von TimedRotatingFileHandler in addHandler () gut funktioniert.

import logging
from logging.handlers import TimedRotatingFileHandler 


logger = logging.getLogger(__name__)
formatter = "%(asctime)s:%(name)s:%(levelname)s:%(message)s"
handler = TimedRotatingFileHandler(
	"/hogehoge/logger.log",
	when="M",
	backupCount=1
)

logger.setLevel(logging.INFO)
handler.setFormatter(logging.Formatter(formatter))
logger.addHandler(handler)

logger.info("===== START HOGEHOGE =====")

Einzelheiten

Die Quellen, die nicht funktionierten, sind:

import logging
import logging.handlers

logger = logging.getLogger(__name__)
formatter = '%(asctime)s:%(name)s:%(levelname)s:%(message)s'
logging.basicConfig(
    level=logging.DEBUG,
    format=formatter,
    handlers=[logging.handlers.TimedRotatingFileHandler(
        filename ='/hogehoge/logger.log',
        when="M",
        backupCount=1
    )]
)

logger.setLevel(logging.INFO)
logger.info("=== START HOGEHOGE ===")

Die Ursache war unbekannt, aber wenn die obige Methode vorerst nicht funktionierte, Ich denke darüber nach, addHandler zu füttern.

Nachtrag

Abhängig von der Umgebung habe ich darüber nachgedacht, TimedRotatingFileHandler mit python2 auszuführen. Ich habe Handler in basicConfig gesetzt und es hat nicht funktioniert, Der Grund wurde anscheinend nicht einfach unterstützt. .. ..

Natürlich können Sie sehen, dass der folgende Inhalt keine Handler enthält und nicht mit basicConfig verwendet werden kann. Ich habe viel Zeit gebraucht, um weitere Dokumente zu lesen. Ich habe viel gelernt.

##Inhalt
Die folgenden Schlüsselwortargumente werden unterstützt.

・ FileMaker
Anstelle von StreamHandler wird ein FileHandler mit dem angegebenen Namen erstellt.

・ Dateimodus
If filename is specified, open the file in this mode. Defaults to 'a'.

· Format
Verwendet die angegebene formatierte Zeichenfolge im Handler.

・ Datefmt
Uhrzeit im angegebenen Datums- und Uhrzeitformat.strftime()Verwenden Sie, was von akzeptiert wird.

· Niveau
Legt die Root-Logger-Ebene auf die angegebene Ebene fest.

・ Stream
Use the specified stream to initialize the StreamHandler. Note that this argument is incompatible with filename - if both are present, stream is ignored.

##Referenz
https://docs.python.org/ja/2.7/library/logging.html

Recommended Posts

[Python] Vorsichtsmaßnahmen, wenn es nicht funktioniert, auch wenn TimedRotatingFileHandler in basicConfig in Python2 festgelegt ist
Patch, wenn die Volltextsuche in der lokalen GAE / Python-Umgebung nicht funktioniert
Befehl, wenn das Herunterfahren von ACPI in VirtualBox nicht funktioniert
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Löschen Sie ein bestimmtes Zeichen in Python, wenn es das letzte ist
NameError: Der globale Name'dot_parser 'ist nicht definiert und was ist zu tun, wenn er in Python angezeigt wird?
Überprüfen Sie Punkte, wenn MIDI in einem Programm mit SDL_mixer nicht funktioniert
Python> enthält die Buchstaben mm> nicht, wenn "mm" nicht im Text enthalten ist: / print "mm nicht enthalten"
Überprüfen Sie Elemente, wenn das importierte Python-Modul nicht wie erwartet funktioniert
Python Hinweis: Wenn easy_install nicht verwendet werden kann
Vorsichtsmaßnahmen beim Beizen einer Funktion in Python
Das Autopep8-Format [VScode] funktioniert nicht. [Python]
Virtualenv funktioniert nicht unter Python 3.5 (Windows)
Python / Wörterbuch> setdefault ()> Hinzufügen, wenn nicht im Wörterbuch
Auch wenn die Entwicklungssprache in Cloud9 in Python3 geändert wird, wird Version 2 in Python - Version angezeigt
[Python] Vorsichtsmaßnahmen beim Erfassen von Daten durch Scraping und Einfügen in die Liste
Eine Geschichte, die manchmal nicht funktioniert, wenn pip die neueste ist
[Für Anfänger] Unerwartetes Verhalten, wenn beim Festlegen des Pfads in Python "\" enthalten ist
Wenn ich matplotlib in Python versuche, heißt es'cairo.Context '.
Wenn die Suche im GAE-Datenspeicher nicht funktioniert
Vorsichtsmaßnahmen beim Umgang mit Kontrollstrukturen in Python 2.6
Jinja2 2.9.6 funktioniert nicht mit der Lambda Python 3-Serie
Wenn die Platzhalterspezifikation mit Pylint nicht funktioniert
Es wird gesagt, dass libmysqlclient.so.18 nicht existiert
Was tun, wenn python3 venv auf Raspberry Pi nicht gut funktioniert?
Was tun, wenn der Fortschrittsbalken in tqdm von Python nicht angezeigt wird?
Was tun, wenn Pythons IntelliSense in VS Code unter Windows nicht angezeigt wird?
Was tun, wenn Python in pyenv nicht von der Systemversion wechselt?
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
Wenn in Python + Selenium "Nachricht: Sitzung nicht erstellt" auftritt
Wenn das ausgewählte Objekt in bpy.context.selected_objects nicht zurückgegeben wird
Schlüsseleingabe, die nicht auf Schlüsseleingabe in Python wartet
Vorsichtsmaßnahmen beim Umgang mit ROS MultiArray in Python
Überprüfen Sie, ob es sich um Unix in der Skriptsprache handelt
Wenn "FEHLER: HTTP wird nicht unterstützt" in mpsyt angezeigt wird
Die parallele Verarbeitung der Python-Joblib funktioniert in der uWSGI-Umgebung nicht. Wie verarbeite ich parallel auf uWSGI?
Über die Angelegenheit, dass Nosetests nicht bestanden werden, wenn __init__.py im Projektverzeichnis erstellt wird
Dies ist schneller zu verwenden, wenn Anweisung oder Wörterbuchtyp beim Konvertieren einer Zeichenfolge (a-> b) in Python
[Python-Anfänger] Variablen und Umfang innerhalb der Funktion (wenn die Verarbeitung innerhalb der Funktion außerhalb der Funktion reflektiert wird und wenn sie nicht reflektiert wird)