Python TimedRotatingFileHandler kann die Protokolldatei nicht umbenennen, da der Windows -Prozess nach Abschluss des CLIPython

Python-Programme
Anonymous
 Python TimedRotatingFileHandler kann die Protokolldatei nicht umbenennen, da der Windows -Prozess nach Abschluss des CLI

Post by Anonymous »

Ich habe eine Python -CLI mit Click Library. Ich verwende PyInstaller, um das endgültige EXE für Windows -Maschinen zu konfigurieren. Jeder Befehl in klicks greift den logger mit seinem namen und zeigt auf denselben Dateinamen namens app.log
Der Speicherort des Protokolls ist immer in %user %\ appdata \ local \ temp \ sony_folder \ logs \ app. Datei, Anmelden kein Problem. In diesem Fall muss es das Datum anhängen und eine neue Protokolldatei erstellen. Der korrekte Vorgang wäre also:
  • app.log Änderungsdatum
  • Letztes Datum ist ein Tag alt, Umbename app.log bis app.log. 3/4/2025)
  • Neue App.log Datei erstellen und startet dort die Protokollierung
Mein aktuelles Verständnis ist, dass klicken Sie auf cli oder PyInstaller sollten den CLI mit 1 Befehl in 1 -Prozess ausführen. Sie können den CLI -Befehl gleichzeitig nicht ausführen, es sei denn, Sie erstellen eine clevere programmatische Möglichkeit, dies zu tun. Aus der Benutzerperspektive ist dies nicht möglich.#Traceback here - last call is to os.rename(source,dest) in logging module handlers.py

PermissionError: [WinError32] The process cannot access the file because it is being used by another process"
'C:\\Users\SOME_USER\AppData\Local\Temp\SOME_FOLDER\logs\app.log' -> 'C:\\Users\SOME_USER\AppData\Local\Temp\SOME_FOLDER\logs\app.log.2025-03-03'
< /code>
Ich habe Probleme, zu verstehen, wo ich dies beheben muss oder wie man es untersucht. Es speichert alle seine Anforderungen in einem TEMP -Ordner und entfernt den Temp -Ordner nach Abschluss der Ausführung. Warum sollte dies nicht die verwendete Protokolldatei veröffentlichen? Ich würde denken, der Prozess würde sofort veröffentlicht.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post