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. .. ** ** **
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 =====")
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.
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