User Tools

Site Tools


vba:classes:log4vba

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vba:classes:log4vba [11.04.2017 16:37:23]
yaslaw [Auslöser]
vba:classes:log4vba [21.10.2019 12:10:41] (current)
yaslaw
Line 1: Line 1:
 <​const>​ <​const>​
-    version=1.4.0 +    version=1.5.6 
-    vdate= ​11.03.2017+    vdate= ​21.10.2019
     fname=log4vba.cls     fname=log4vba.cls
     ns=%NAMESPACE%     ns=%NAMESPACE%
Line 16: Line 16:
 {{%%fname%%|Download %%fname%% (V-%%version%%)}}</​WRAP>​ {{%%fname%%|Download %%fname%% (V-%%version%%)}}</​WRAP>​
  
-Mit dem Errohandling und Debug-Inrmationen ​in VBA ist es immer wieder mühsam, jedesmal alles auszuprogrammieren. Darum habe ich für mich diese Klasse geschrieben. Sie ist einfach zu implementieren und ermöglicht ein einheitliches Error-Handling über ein gesammtes Projekt.+Mit dem Errohandling und Debug-Informationen ​in VBA ist es immer wieder mühsam, jedesmal alles auszuprogrammieren. Darum habe ich für mich diese Klasse geschrieben. Sie ist einfach zu implementieren und ermöglicht ein einheitliches Error-Handling über ein gesammtes Projekt.
  
 ===== Definitionen ===== ===== Definitionen =====
Line 41: Line 41:
  
 ==== Creatoren ==== ==== Creatoren ====
-Es gibt verschiedene Möglichkeiten ein DateTime ​zu initialisieren+Es gibt verschiedene Möglichkeiten ein Log4vba ​zu initialisieren
 ^ Methode ^ Rückgabetyp ^ Beschreibung ^ ^ Methode ^ Rückgabetyp ^ Beschreibung ^
-| [[#​singleton]] | %%Log4vba%% | Erstellt und behält eine Instanz | 
 | [[#​instance]] | %%Log4vba%% | Erstellt eine neue Instance ​ | | [[#​instance]] | %%Log4vba%% | Erstellt eine neue Instance ​ |
 | [[#​startMethode]] | %%Log4vba%% | Erstellt ein Clone einer Instance und setzt die Methode fest | | [[#​startMethode]] | %%Log4vba%% | Erstellt ein Clone einer Instance und setzt die Methode fest |
Line 101: Line 100:
  
 ==== singleton() ==== ==== singleton() ====
-Dieser Creator ​ist als %%VB_UserMemId = 0%% definiertSprich, wenn die Klasse ​direkt aufgerufen wird, dann wird diese Klasse ausgeführt+singleton ​ist ab Version 1.5.keine eigene Funktion mehrIch habe festgestellt,​ dass VBA singleton unterstützt, wenn die Einstellung Attribute VB_PredeclaredId = True gesetzt ist. Und das ist bei dieser ​Klasse ​der Fall
-Der Singeton-Constructorgibt immer dieseleb Instanz von Log4vba zurück. + 
-<​code>​Log4vba.singleton([debugMode]) +Um auf die singelton zuzugreiffen,​ müssen die Klammern weggelassen werden
-Log4vba([debugMode])</code> +<​code>​Log4vba</​code>​
-<code vb>'/​** +
-' * Default. Handelt eine Singleton Instanz von Log4vba +
-' * @example ​   Log4vba().info "Hallo Welt"​ +
-' * @param ​ eLogType ​   Standard LogType +
-' * @return Log4vba +
-' */ +
-Public Function singleton(Optional ByVal iDebugMode = False) As Log4vba</​code>​+
  
 === Beispiel === === Beispiel ===
-<code vb>Log4vba().debugMode = True +<code vb>'Info mit ausgeben 
-debug.assert Log4vba().error (Err)</​code>​+log4vba.info "​Test",​ "​Immediate"​ 
 +02.05.2017 11:​31:​14 ​  ​INFO ​     Immediate - Test 
 + 
 +'​Ausgabe anpassen 
 +log4vba.typeSettings(ltInfo= eprOutConsole+eprFrmtNoSource 
 + 
 +'​Erneuter Test. Die Source wird nicht mehr ausgegeben 
 +log4vba.info "​Test",​ "​Immediate"​ 
 +02.05.2017 11:​32:​04 ​  ​INFO ​     Test 
 + 
 +'Debug ist normalerweise nicht eingeschaltet Darum keine Ausgabe 
 +log4vba.debugMsg "Debug Test"​ 
 + 
 +'Debug einschalten 
 +Log4vba.debugMode = True 
 + 
 +'Test wiederholen 
 +log4vba.debugMsg "Debug Test"​ 
 +02.05.2017 11:​33:​00 ​  ​DEBUG ​    Debug Test</​code>​
  
 ==== instance() ======= ==== instance() =======
Line 159: Line 169:
 ==== construct() ==== ==== construct() ====
 Iniitialisier ein bestehendes Objekt neu.  Iniitialisier ein bestehendes Objekt neu. 
-<​code>​object.construct([debugMode])+<​code>​object.construct([debugMode])</​code>​
 <code vb>'/​** <code vb>'/​**
 ' * Setzt Standardwerte für eine bestehende Instanz ' * Setzt Standardwerte für eine bestehende Instanz
Line 182: Line 192:
 False False
  
-'und jetzt mit No drücken ​(Also nicht in den Debug-Mode wechseln+'und jetzt mit No drücken. Ergo nicht in den Debug-Mode wechseln
 ? Log4vba().error("​Ich bin ein Fehler",​ vbObjectError) ? Log4vba().error("​Ich bin ein Fehler",​ vbObjectError)
 True</​code>​ True</​code>​
Line 218: Line 228:
 === Beispiel === === Beispiel ===
 Ein Beipiel in Direktfenster Ein Beipiel in Direktfenster
-<code vb>​Log4vba().debugMode = true +<code vb>​Log4vba.debugMode = true 
-Log4vba().debugValue "Mein Array",​ array("​Stefan",​ "​Erb",​ "​Winterthur"​)+Log4vba.debugValue "Mein Array",​ array("​Stefan",​ "​Erb",​ "​Winterthur"​)
 25.11.2016 10:​41:​07 ​  ​DEBUG ​    Mein Array: ['​Stefan','​Erb','​Winterthur'​]</​code>​ 25.11.2016 10:​41:​07 ​  ​DEBUG ​    Mein Array: ['​Stefan','​Erb','​Winterthur'​]</​code>​
 Die Ausgabe mit [[#​lib_printr_exists]] aktiviert und eprPrintR für ltDebug. Die Ausgabe mit [[#​lib_printr_exists]] aktiviert und eprPrintR für ltDebug.
-<code vb>​Log4vba().debugMode = true +<code vb>​Log4vba.debugMode = true 
-Log4vba().typeSettings(ltDebug) = eprConsole+eprPrintR ​ 'Ist als Standard bereits gesetzt. Ist hier nur zur Veranschaulichung +Log4vba.typeSettings(ltDebug) = eprConsole+eprPrintR ​ 'Ist als Standard bereits gesetzt. Ist hier nur zur Veranschaulichung 
-Log4vba().debugValue "Mein Array",​ array("​Stefan",​ "​Erb",​ "​Winterthur"​)+Log4vba.debugValue "Mein Array",​ array("​Stefan",​ "​Erb",​ "​Winterthur"​)
 25.11.2016 12:​44:​09 ​  ​DEBUG ​    Mein Array 25.11.2016 12:​44:​09 ​  ​DEBUG ​    Mein Array
                                 <​Variant()> ​ (                                 <​Variant()> ​ (
Line 235: Line 245:
 ==== info() ==== ==== info() ====
 Schreibt eine Information. Der Erste Paramter kann ein Text oder ein ErrObject sein Schreibt eine Information. Der Erste Paramter kann ein Text oder ein ErrObject sein
-<​code>​flag = Log4vba()info(Err)  +<​code>​flag = Log4vba.info(Err)  
-flag = Log4vba()info(Message [,​ErrorBumber [,Source [,​Array(Parameters) [,​Settings]]]])</​code>​+flag = Log4vba.info(Message [,​ErrorBumber [,Source [,​Array(Parameters) [,​Settings]]]])</​code>​
 <code vb>'/​** <code vb>'/​**
 ' * @param ​ ErrObject/​String ' * @param ​ ErrObject/​String
Line 272: Line 282:
     Exit Sub     Exit Sub
 Err_Handler:​ Err_Handler:​
-    Log4vba().info "Manelle ​Meldung",​ "​testLog4vba2()"​ +    Log4vba().info "Manuelle ​Meldung",​ "​testLog4vba2()"​ 
-    Debug.Assert Log4vba().info(Err, , "​testLog4vba2()",​ Array(iId, iArray))+    Debug.Assert Log4vba.info(Err,​ , "​testLog4vba2()",​ Array(iId, iArray))
 End Sub</​code>​ End Sub</​code>​
 <​code>​testLog4vba2 123, array("​Stefan",​ "​Erb",​ "​Winterthur"​) <​code>​testLog4vba2 123, array("​Stefan",​ "​Erb",​ "​Winterthur"​)
Line 310: Line 320:
 ==== Eigene Funktion ==== ==== Eigene Funktion ====
 //Nur in MS Access// //Nur in MS Access//
-\\ Man kann die Auswertung des Logs auch einer eigenen Funktion deligieren. Mit dem TypeSetting eprOutFunction wird das aktiviert. Dem Property functionName muss der loklae ​Funktionsname mitgegeben werden. Es muss eine Funktion und keine Sub sein, da hier mit eval() gearbeitet wird. Die Parameter der Funktion müssen so sein+\\ Man kann die Auswertung des Logs auch einer eigenen Funktion deligieren. Mit dem TypeSetting eprOutFunction wird das aktiviert. Dem Property functionName muss der lokale ​Funktionsname mitgegeben werden. Es muss eine Funktion und keine Sub sein, da hier mit eval() gearbeitet wird. Die Parameter der Funktion müssen so sein
 <code vb>​Public Function myLogFunction(ByVal iLogType As eLogType, ByVal iText As String)</​code>​ <code vb>​Public Function myLogFunction(ByVal iLogType As eLogType, ByVal iText As String)</​code>​
 Weiteres dazu im Beispiel [[#Loggen mit eigener Auswertung eprOutFunction]]. Weiteres dazu im Beispiel [[#Loggen mit eigener Auswertung eprOutFunction]].
Line 487: Line 497:
 ' */ ' */
 Public Function writeToConsole(ByVal iLogType As eLogType, ByVal iText As String) Public Function writeToConsole(ByVal iLogType As eLogType, ByVal iText As String)
-    If Not CurrentProject.AllForms("​FRM_SYS_CONSOLE"​).IsLoaded Then DoCmd.OpenForm ​C_CONSOLE+    If Not CurrentProject.AllForms("​FRM_SYS_CONSOLE"​).IsLoaded Then DoCmd.OpenForm ​"​FRM_SYS_CONSOLE"​
     Form_FRM_SYS_CONSOLE.log iText     Form_FRM_SYS_CONSOLE.log iText
 End Function</​code>​ End Function</​code>​
vba/classes/log4vba.1491921443.txt.gz · Last modified: 11.04.2017 16:37:23 by yaslaw