vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Separate Log-Klasse 
Autor: Xcabur
Datum: 17.04.12 17:46

Hallo zusammen
Ich brauch mal wieder ein paar Tipps. Ich möchte eine Klasse erstellen, welche das Log Management übernimmt. Dabei will ich nicht Ausnahmefehler behandeln, sondern eigens definierten Text in eine Log-Schreiben, welches als Protokoll zur Fehleranalyse dienen kann. Dazu habe ich nun folgende Klasse erstellt:
 
Imports System.IO
Public Class clsLog
    Private strMessage As String
    Private strPath As String
    Private bolOverwriteLogfile As Boolean
 
    Public Sub New(Optional ByVal Path As String = "log.txt", Optional ByVal _
      OverwriteLogfile As Boolean = True)
 
        Me.Path = Path
        Me.OverwriteLogfile = OverwriteLogfile
 
    End Sub
 
    Public Sub Log(ByVal Message As String)
 
        Dim objStreamWriter As StreamWriter
 
        objStreamWriter = New StreamWriter(Me.Path, Me.OverwriteLogfile)
        If Me.OverwriteLogfile = True Then Me.OverwriteLogfile = False
 
        Debug.WriteLine(Message)
        objStreamWriter.WriteLine(Message)
 
        objStreamWriter.Close()
 
    End Sub
 
    Public Property Message() As String
        Get
            Return strMessage
        End Get
 
        Set(ByVal value As String)
            strMessage = value
            Log(Message)
        End Set
 
    End Property
 
    Public Property Path() As String
        Get
            Return strPath
        End Get
 
        Set(ByVal value As String)
            strPath = value
        End Set
 
    End Property
 
    Public Property OverwriteLogfile() As Boolean
        Get
            Return bolOverwriteLogfile
        End Get
 
        Set(ByVal value As Boolean)
            bolOverwriteLogfile = value
        End Set
 
    End Property
End Class
Ich habe mir vorgestellt, dass ich in meiner Main-Form die Kalsse instanziere und so das Log füttern kann. Dies funktioniert soweit auch:

 
Public Class frmMain
    Dim objLog As New clsLog()
 
    Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
 
        objLog.Message = "Main Form Load"
 
    End Sub
 
End Class
Soweit funktioniert es auch.
Nun habe ich dass Problem, dass ich weitere Methoden der frmMain-Klasse aber auch Methoden anderer Klassen (clsFolder.GetSubFolders()) aufrufen. In diesen möchte ich ebenfalls Meldungen ins Protokoll schreiben. Ich habe gehoft, dass wenn ich das Property objLog.Message als ByRef an andere Methoden übergebe, dass dann beim setzen des Property dies sogleich in der clsLog ausgeführt wird. Dies funktioniert allerdings nur, wenn ich nur eine Nachricht ausgeben will, da das Set-Property erst beim Zurückspringen in das frmMain erfolgt.

 
Public Class frmMain
    Dim objLog As New clsLog()
 
    Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
 
        objLog.Message = "Main Form Load"
 
        Dim arrSubFolders As New ArrayList        
        clsFolder.GetSubFolders(Path, arrSubFolders, objLog.Message)
 
    End Sub
 
End Class
 
Public Class clsFolder
 
    Public Shared Sub GetSubFolders(ByVal Path As String, ByRef SubFolders As _
      ArrayList, ByRef Logmessage As String)
        Logmessage = "Diese Nachricht erscheint nicht im Log"
        Logmessage = "Aber die letzte Nachricht (letzter Wert der Variable)" & _
          "erscheint im Log"
 
    End Sub
End Class
Natürlich könnte ich die clsLog.Log als Shared Function nutzen, allerdings möchte ich die clsFolder Klasse unabhängig halten, falls diese einmal in einem anderen Zusammenhang verwendet wird ohne, dass die clsLog zum Einsatz kommt.

Was gibt es da für Möglichkeiten?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Separate Log-Klasse2.427Xcabur17.04.12 17:46
Re: Separate Log-Klasse1.411Manfred X17.04.12 18:00
Re: Separate Log-Klasse1.405Xcabur17.04.12 20:40
Re: Separate Log-Klasse1.505Manfred X17.04.12 21:10
Re: Separate Log-Klasse1.389keco17.04.12 20:51
Re: Separate Log-Klasse1.411Xcabur17.04.12 21:11
Re: Separate Log-Klasse1.403keco17.04.12 21:25
Re: Separate Log-Klasse1.387Xcabur17.04.12 23:40

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel