This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
vba:classes:log4vba [11.04.2017 16:38:51] yaslaw [Eigene Funktion] |
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%% definiert. Sprich, wenn die Klasse direkt aufgerufen wird, dann wird diese Klasse ausgeführt. | + | singleton ist ab Version 1.5.0 keine eigene Funktion mehr. Ich 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 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> |