[ TAG 161 ][29.09.2021] -Erfolgreich -IAP-20210601-20210722-1145 -RPRCSL_LOGGER
Ich beginne mit der Worksession um [29.09.2021][1145]. Mein erster Entwurf der LOG-Ausgabe ist vom [T159][27.09.2021]. Das ist die Ausgangsbasis für die heutige Worksession.
Heute werde ich mich auf das LOG-Format konzentrieren. Im Modul [LOGGER_20210927.py] habe ich die ersten Entwürfe der Variablen erstellt.
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
format = "%(asctime)s :: %(levelname)s :: %(process)d :: %(name)s :: %(funcName)s :: %(lineno)d ::: %(message)s"
formatter = logging.Formatter(format)
Diese Variablen bzw. Eigenschaften des Moduls importiere ich, wie folgt in anderen Python-Modulen
from ALOG_20210722.LOGGER_20210927 import logger as log
Weil sich die LOG-Ausgabe an [RPRCSL]-Liste spezialisiert, sagt der Name nichts über den Bezug zu den Informationsstrukturen für die der Logger vorgesehen wurde.
Zu der Zeit habe ich auch die LOG-Datei sehr allgemein benannt. Der Name der LOG-DATEI soll ebenfalls die Beziehung zu den Informationsstrukturen darstellen.
def FILE():
return "test2.log"
def PATH():
return "ALOG_20210722\\"
file_handler = logging.FileHandler(f"{PATH()}{FILE()}")
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)
Namesentwurf der LOG-DATEI:
[log]_[SESSION-ID]_[SUBSESSION-ID].[rprcsl]
[log]_[SESSION-ID]_[SUBSESSION-ID].[rprcsl]
[log] - LOGGER File
[SESSION-ID] - SESSION-IDENTIFICATION
[SUBSESSION-ID] - SUBSESSION-IDENTIFICATION
[rprcsl] - REFERENCE PROCESS LISTE
- Syntax:
- [PREFIX]: "log"
- [PREFIX-DELIMITER]: "_"
- [SUFFIX]: "rprcsl"
- [SUFFIX-DELIMITER]: "."
- [SESSION-IDENTIFIKATION]: "DEON-KW20-20210509"
- Frühere Benennungs-Referenzen: "DEON-KW20-19052021"
- Quelle: anchor.fm
- [SUBSESSION-IDENTIFICATION]: 123545
- DATEN:
- Stunde: 12
- Minute: 35
- Sekunde: 45
Die Identifikationen führen mich zu einer weiteren Frage.
- Soll das [LOGGER_20210927.py]-Modul das aktuelle Datum auslesen und in die Namensvergabe voll automatisch vornehmen?
- Oder...
- Soll man den [LOGGER_20210927.py]-Modul die Daten über das Erstellungsdatum über Attribute mitgeben?
- Diese Frage führt die Entwicklung in die Richtung, wo ein separater Modul den Logger ausführt, Daten generiert und die generierten Daten an den Logger übergibt.
Überarbeitungs-Protokoll
- Python-Modul [LOGGER_20210927.py] wird umbenannt.
- Alter Name: "LOGGER_20210927.py"
- Neuer Name: "RPRCSL_LOGGER_20210929.py"
- Logger-Variablen werden umbenannt [logger]
- Alter Variablenname: "logger"
- Neuer Variablenname: "RPRCSL_LOGGER"
- Instanz-Namen
- Alter Instanz Name: "log"
- Neuer Instanz Name: "rprcsl_log"
- Variablen-Name für FORMAT
- Alter Variablenname: "format"
- Neuer Variablenname: "LGFT20210927"
- Variablen-Name für FORMATTER:
- Alter Variablenname: "formatter"
- Neuer Variablenname: "LGFRMTR20210927"
- Variablen-Name für FILE-HANDLER
- Alter Variablenname: "file_handler"
- Neuer Variablenname: "LGFH20210927"
- Variablen-Name für STREAM-HANDLER
- Alter Variablenname: "stream_handler"
- Neuer Variablenname: "LGSH20210927"
[RPRCSL_LOGGER_20210929.py]
def FILE():
prfx = "log"
prfx_delitimer = "_"
sfx = "rprcsl"
sfx_delimiter = "."
ssn_prj = "DEON"
ssn_kw = "KW20"
ssn_date = "20210509"
ssn_delimiter = "-"
ssn_id = f"{ssn_prj}{ssn_delimiter}" \
f"{ssn_kw}{ssn_delimiter}" \
f"{ssn_date}"
subssn_hour = 12
subssn_min = 35
subssn_sec = 45
subssn_id = f"{subssn_hour}{subssn_min}{subssn_sec}"
filename = f"{prfx}{prfx_delitimer}" \
f"{ssn_id}{prfx_delitimer}" \
f"{subssn_id}{sfx_delimiter}" \
f"{sfx}"
print("")
print("")
print(f"filename: {filename}")
print("")
return "test2.log"
[PROCESS_ALOG_20210726_0110.py]
def RPRCSL_PRFXITM(alog_glb):
id = "prfxitm"
i = dict()
i["prfx"] = "log"
i["prfx_delimiter"] = "_"
return [id, i]
def RPRCSL_SFXITM(alog_glb):
id = "sfxitm"
i = dict()
i["sfx"] = "rprcsl"
i["sfx_delimiter"] = "."
return [id, i]
def RPRCSL_SUBSSNITM(alog_glb):
id = "subssnitm"
i = dict()
i["subssn_hour"] = 12
i["subssn_min"] = 35
i["subssn_sec"] = 45
return [id, i]
def RPRCSL_SSNITM(alog_glb):
id = "ssnitm"
i = dict()
i["ssn_prj"] = "DEON"
i["ssn_kw"] = "KW20"
i["ssn_date"] = "20210509"
i["ssn_delimiter"] = "-"
return [id, i]
Eine große Herausforderung bei dieser Datenstruktur stellen die Daten mit unterschiedlichen Verwendungsgründen.
Zum Beispiel lassen sich Daten in Modulen wie [RPRCSL_PRFXITM], [RPRCSL_SFXITM], [RPRCSL_SUBSSNITM], [RPRCSL_SSNITM] in unterschiedlichen Modulen generieren. Aus diesen Grund werde ich die Daten den Methoden über Attribute übergeben.
Mein nächster Entwurf sieht so aus.
def RPRCSL_PRFXITM(prfx="log", prfx_delimiter="_"):
id = "prfxitm"
i = dict()
i["prfx"] = prfx
i["prfx_delimiter"] = prfx_delimiter
return [id, i]
def RPRCSL_SFXITM(sfx="rprcsl", sfx_delimiter="."):
id = "sfxitm"
i = dict()
i["sfx"] = sfx
i["sfx_delimiter"] = sfx_delimiter
return [id, i]
def RPRCSL_SUBSSNITM(hour=12, min=35, sec=45):
id = "subssnitm"
i = dict()
i["subssn_hour"] = hour
i["subssn_min"] = min
i["subssn_sec"] = sec
return [id, i]
def RPRCSL_SSNITM(prj="DEON", kw_int=20, date="20210509", delimiter="-"):
id = "ssnitm"
i = dict()
i["ssn_prj"] = prj
i["ssn_kw"] = f"KW{kw_int}"
i["ssn_date"] = date
i["ssn_delimiter"] = delimiter
return [id, i]
Ausgabe:
------------------------------------------------------
['prfxitm', {'prfx': 'prfx', 'prfx_delimiter': '__'}]
['sfxitm', {'sfx': 'sfx', 'sfx_delimiter': '..'}]
['subssnitm', {'subssn_hour': 0, 'subssn_min': 0, 'subssn_sec': 0}]
['ssnitm', {'ssn_prj': 'prj', 'ssn_kw': 'KW0', 'ssn_date': '0000.00.00', 'ssn_delimiter': '--'}]
Python-Dateobjects
Das ist der nächste Schritt. Es müssen Daten aus den Dateobjects geholt werden.
- Quellen:
- [https://die-aktuelle-kalenderwoche.de/kalenderwochen-in-phyton]
- [https://medium.com/@stefan.preusler/wochentag-und-kalenderwoche-in-python-fd90ec26202]
- [https://docs.python.org/3/library/datetime.html]
- [https://www.w3schools.com/python/python_datetime.asp]
- [https://www.programiz.com/python-programming/datetime]
Hochachtungsvoll
Artem Kraft
Kommentare
Kommentar veröffentlichen