[ 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]           - 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
  1. Python-Modul [LOGGER_20210927.py] wird umbenannt.
    • Alter Name: "LOGGER_20210927.py"
    • Neuer Name: "RPRCSL_LOGGER_20210929.py"
  2. Logger-Variablen werden umbenannt [logger]
    • Alter Variablenname: "logger"
    • Neuer Variablenname: "RPRCSL_LOGGER"
  3. Instanz-Namen
    • Alter Instanz Name: "log"
    • Neuer Instanz Name: "rprcsl_log"
  4. Variablen-Name für FORMAT
    • Alter Variablenname: "format"
    • Neuer Variablenname: "LGFT20210927"
  5. Variablen-Name für FORMATTER:
    • Alter Variablenname: "formatter"
    • Neuer Variablenname: "LGFRMTR20210927"
  6. Variablen-Name für FILE-HANDLER
    • Alter Variablenname: "file_handler"
    • Neuer Variablenname: "LGFH20210927"
  7. 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.


Hochachtungsvoll
Artem Kraft




Kommentare

Beliebte Posts aus diesem Blog

[ TAG 38 ][29.05.2021] - Erfolgreich - Freelancer-Portale

[ TAG 747 ][07.04.2023] -Erfolgreich -BNKTRS -Google Code -Objekt und Methodenliste

[ TAG 52 ][12.06.2021] - Erfolgreich - IAP-20210601-20210609-2325