diff --git a/EDMDesigner/ClassLogger.vb b/EDMDesigner/ClassLogger.vb deleted file mode 100644 index b70761ad..00000000 --- a/EDMDesigner/ClassLogger.vb +++ /dev/null @@ -1,179 +0,0 @@ -Imports NLog -Imports NLog.Config -Imports NLog.Targets -Imports NLog.Targets.Wrappers -Imports NLog.Targets.Wrappers.BufferingTargetWrapperOverflowAction - -Imports System.IO - -Public Class ClassLogger - Private Const FileNameFormat As String = "${shortdate}-${var:product}.log" - Private Const FileNameFormatDetail As String = "${shortdate}-${var:product}-Detail.log" - Private Const FileNameFormatDebug As String = "${shortdate}-${var:product}-Debug.log" - - Private Const TARGET_DEFAULT As String = "default" - Private Const TARGET_DEFAULT_EX As String = "defaultEx" - Private Const TARGET_DETAIL As String = "detail" - Private Const TARGET_DEBUG As String = "debug" - - Private Const defaultLogFormat As String = "${longdate}|${level:uppercase=true}|${logger}|${message}" - Private Const exceptionLogFormat As String = "${longdate}|${level:uppercase=true}|${logger}|${message}|${exception:format=message}|${exception:format=toString}" - - Private config As LoggingConfiguration - Private debugOn As Boolean = False - - Private ReadOnly failSafePath As String = Path.GetTempPath() - Private ReadOnly basePath As String = failSafePath - - Public Enum PathType As Integer - AppData = 0 - CurrentDirectory = 1 - CustomPath = 2 - End Enum - - Public LogFile As String - - - Public Property Debug As Boolean - Get - Return debugOn - End Get - Set(value As Boolean) - If debugOn <> value Then - debugOn = value - - If value = True Then - ActivateDebugLog() - Else - DeactivateDebugLog() - End If - End If - End Set - End Property - - ''' - ''' Initializes a new Logger for a specific "Product" - ''' - ''' An name that identifies the Logs - ''' The basepath to write logs to. Can be AppData, CurrentDirectory or CustomPath. - ''' If `logPath` is set to custom, this defines the custom logPath - Public Sub New(product As String, logPath As PathType, Optional customLogPath As String = Nothing) - If logPath = PathType.AppData Then - Dim appDataDir = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) - basePath = Path.Combine(appDataDir, "Digital Data", product) - ElseIf logPath = PathType.CurrentDirectory Then - basePath = "Log" - Else 'Custom Path - basePath = customLogPath - End If - - config = New LoggingConfiguration() - config.Variables("product") = product - - config.AddTarget(TARGET_DEFAULT_EX, WrapTargetInBuffered(GetDefaultLogTargetWithExceptions(basePath))) - config.AddTarget(TARGET_DEFAULT, WrapTargetInBuffered(GetDefaultLogTarget(basePath))) - config.AddTarget(TARGET_DETAIL, WrapTargetInBuffered(GetDetailLogTarget(basePath))) - config.AddTarget(TARGET_DEBUG, WrapTargetInBuffered(GetDebugLogTarget(basePath))) - - AddDefaultLogTargets() - - LogManager.Configuration = config - End Sub - - Private Function WrapTargetInBuffered(target As FileTarget) As Target - Dim bufferedWrapper = New BufferingTargetWrapper() - - bufferedWrapper.WrappedTarget = target - - ' Number of log events to be buffered. When the limit is reached, - ' then a synchronous flush is performed. - bufferedWrapper.BufferSize = 100 - - ' Action to be taken when the buffer exceeds the set bufferSize. - bufferedWrapper.OverflowAction = Flush - - ' Timeout (in milliseconds) after a write, until the entire buffer - ' is asynchronously flushed. Use -1 to disable timed flushes. - bufferedWrapper.FlushTimeout = 100 - - Return bufferedWrapper - End Function - - - Private Sub ActivateDebugLog() - ' Clear Logging Rules - config.LoggingRules.Clear() - - ' Add default targets and debug target - AddDefaultLogTargets() - config.AddRuleForOneLevel(LogLevel.Debug, TARGET_DEBUG) - - ' Reload all running loggers - LogManager.ReconfigExistingLoggers() - End Sub - - Private Sub DeactivateDebugLog() - ' Clear Logging Rules - config.LoggingRules.Clear() - - ' Add default targets - AddDefaultLogTargets() - - ' Reload all running loggers - LogManager.ReconfigExistingLoggers() - End Sub - - Private Sub AddDefaultLogTargets() - config.AddRuleForOneLevel(LogLevel.Error, TARGET_DEFAULT_EX) - config.AddRuleForOneLevel(LogLevel.Fatal, TARGET_DEFAULT_EX) - config.AddRuleForOneLevel(LogLevel.Warn, TARGET_DEFAULT) - config.AddRuleForOneLevel(LogLevel.Info, TARGET_DETAIL) - End Sub - -#Region "Log Targets" - Private Function GetDefaultLogTarget(basePath As String) As FileTarget - Dim defaultFilePath As String = Path.Combine(basePath, FileNameFormat) - Dim defaultLog As New FileTarget() With { - .FileName = defaultFilePath, - .Layout = defaultLogFormat, - .MaxArchiveFiles = 30, - .KeepFileOpen = True - } - - Return defaultLog - End Function - Private Function GetDefaultLogTargetWithExceptions(basePath As String) As FileTarget - Dim defaultFilePath As String = Path.Combine(basePath, FileNameFormat) - Dim defaultLogWithExceptionData As New FileTarget() With { - .FileName = defaultFilePath, - .Layout = exceptionLogFormat, - .MaxArchiveFiles = 30, - .KeepFileOpen = True - } - - Return defaultLogWithExceptionData - End Function - Private Function GetDetailLogTarget(basePath As String) As FileTarget - Dim detailFilePath As String = Path.Combine(basePath, FileNameFormatDetail) - Dim detailLog As New FileTarget() With { - .FileName = detailFilePath, - .Layout = defaultLogFormat, - .MaxArchiveFiles = 1, - .KeepFileOpen = True - } - - Return detailLog - End Function - Private Function GetDebugLogTarget(basePath As String) As FileTarget - Dim debugFilePath As String = Path.Combine(basePath, FileNameFormatDebug) - Dim debugLog As New FileTarget() With { - .FileName = debugFilePath, - .Layout = defaultLogFormat, - .MaxArchiveFiles = 1, - .KeepFileOpen = True - } - - Return debugLog - End Function -#End Region -End Class diff --git a/EDMDesigner/EDMDesigner.vbproj b/EDMDesigner/EDMDesigner.vbproj index cac53184..b1259ad4 100644 --- a/EDMDesigner/EDMDesigner.vbproj +++ b/EDMDesigner/EDMDesigner.vbproj @@ -111,7 +111,6 @@ - FrmConnection.vb diff --git a/EDMDesigner/FrmConnection.vb b/EDMDesigner/FrmConnection.vb index 673b2e1a..43e7a8da 100644 --- a/EDMDesigner/FrmConnection.vb +++ b/EDMDesigner/FrmConnection.vb @@ -1,12 +1,13 @@ Imports DigitalData.Modules.Database +Imports DigitalData.Modules.Logging Public Class FrmConnection - Public Property LogFactory As NLog.LogFactory + Public Property LogConfig As LogConfig Private _logger As NLog.Logger Private Sub FrmConnection_Load(sender As Object, e As EventArgs) Handles MyBase.Load - _logger = LogFactory.GetCurrentClassLogger() + _logger = LogConfig.GetLogger() FbDatabaseLocationTextBox.DataBindings.Add("Text", My.Settings, "fbDatabaseLocation") FbDatasourceTextBox.DataBindings.Add("Text", My.Settings, "fbDatasource") @@ -18,7 +19,7 @@ Public Class FrmConnection Dim dbTest As Firebird Try - dbTest = New Firebird(LogFactory, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword) + dbTest = New Firebird(LogConfig, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword) If dbTest.ConnectionFailed Then MsgBox("Connection failed!", MsgBoxStyle.Information, "Database Connection") diff --git a/EDMDesigner/FrmMain.vb b/EDMDesigner/FrmMain.vb index 56968ffe..a40f81e9 100644 --- a/EDMDesigner/FrmMain.vb +++ b/EDMDesigner/FrmMain.vb @@ -6,7 +6,7 @@ Public Class FrmMain Private _selectedTable As Integer Private _selectedTableName As String - Private _logger As NLog.Logger + Private _logger As Logger Private _logConfig As LogConfig Private _firebird As Firebird @@ -56,7 +56,7 @@ Public Class FrmMain End Function Private Sub Init() - _firebird = New Firebird(_logConfig.LogFactory, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword) + _firebird = New Firebird(_logConfig, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword) If _firebird.ConnectionFailed Then MsgBox("Database connection failed. Please check the log.", vbCritical) @@ -72,13 +72,25 @@ Public Class FrmMain End Sub Private Sub FrmMain_Load(sender As Object, e As EventArgs) Handles Me.Load - _logConfig = New LogConfig(ClassLogger.PathType.CurrentDirectory) - _logger = _logConfig.LogFactory.GetCurrentClassLogger() + _logConfig = New LogConfig(LogConfig.PathType.CurrentDirectory) + _logger = _logConfig.GetLogger() '_logConfig.LogFactory.GetCurrentClassLogger(GetType(Logger)) + + _logger.NewBlock("STARTUP") + _logger.Info("INFO") + _logger.Warn("WARN") + _logger.NewBlock("ERROR") + + + Try + Throw New Exception("ERROR") + Catch ex As Exception + _logger.Error(ex) + End Try ' Check for existing database credentials While Not DatabaseSettingsExist() Dim form As New FrmConnection With { - .LogFactory = _logConfig.LogFactory + .LogConfig = _logConfig } Dim result As DialogResult = form.ShowDialog() @@ -151,7 +163,7 @@ Public Class FrmMain End Sub Private Sub NeueTabelleToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NeueTabelleToolStripMenuItem.Click - Dim oForm As New FrmNewTable(_logConfig.LogFactory) + Dim oForm As New FrmNewTable(_logConfig) oForm.ShowDialog() Dim oTables As DataTable = LoadTables() diff --git a/EDMDesigner/FrmNewTable.vb b/EDMDesigner/FrmNewTable.vb index 652c9ad1..4812049f 100644 --- a/EDMDesigner/FrmNewTable.vb +++ b/EDMDesigner/FrmNewTable.vb @@ -1,24 +1,24 @@ -Imports NLog -Imports DigitalData.Modules.Database +Imports DigitalData.Modules.Database +Imports DigitalData.Modules.Logging Public Class FrmNewTable - Private _logFactory As LogFactory + Private _logConfig As LogConfig Private _logger As Logger Private _db As Firebird - Public Sub New(LogFactory As LogFactory) + Public Sub New(LogConfig As LogConfig) ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. - _logFactory = LogFactory - _logger = _logFactory.GetCurrentClassLogger() + _logConfig = LogConfig + _logger = _logConfig.GetLogger() End Sub Private Sub FrmNewTable_Load(sender As Object, e As EventArgs) Handles Me.Load Try - _db = New Firebird(_logFactory, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword) + _db = New Firebird(_logConfig, My.Settings.fbDatasource, My.Settings.fbDatabaseLocation, My.Settings.fbUser, My.Settings.fbPassword) Catch ex As Exception MsgBox("Connection to DB failed!", MsgBoxStyle.Critical) _logger.Error(ex) diff --git a/TestGUI/Form1.vb b/TestGUI/Form1.vb index 2ae3ef56..3e45e827 100644 --- a/TestGUI/Form1.vb +++ b/TestGUI/Form1.vb @@ -4,19 +4,18 @@ Imports System.ComponentModel Public Class Form1 Dim MyLogger As LogConfig - Shared Logger As NLog.Logger + Dim Logger As Logger - Protected _windream As Windream Protected _windream2 As Windream2 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim serverName As String = TextBox1.Text ' Windream.vb - '_windream = New Windream("W", True, False) + '_windream2 = New Windream("W", True, False) ' Windream2.vb Try - _windream2 = New ConnectionBuilder(MyLogger.LogFactory). + _windream2 = New ConnectionBuilder(MyLogger). WithDriveLetter("W"). WithSessionReconnect(). With64BitSupport(). @@ -40,7 +39,7 @@ Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load MyLogger = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "MAIN") - Logger = MyLogger.LogFactory.GetCurrentClassLogger() + Logger = MyLogger.GetLogger() Dim MySecondLogger = New LogConfig(LogConfig.PathType.CurrentDirectory, Nothing, "MAIN2") Dim SecondLogger = MySecondLogger.LogFactory.GetCurrentClassLogger() @@ -56,42 +55,43 @@ Public Class Form1 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles GetValue.Click My.Settings.Save() - If IsNothing(_windream) Then + If IsNothing(_windream2) Then MsgBox("windream initialisieren") Exit Sub End If - Dim result As DataTable = _windream.GetValueforIndex(txtWMFile.Text, txtWMIndex.Text) - If result.Rows.Count = 0 Then + Dim result As List(Of String) = _windream2.GetIndexValue(txtWMFile.Text, txtWMIndex.Text) + If result.Count = 0 Then MsgBox("No result") Else - txtWMValue.Text = result.Rows(0).Item(0).ToString + txtWMValue.Text = result.Item(0).ToString End If End Sub Private Sub IndexFile_Click(sender As Object, e As EventArgs) Handles IndexFile.Click My.Settings.Save() - If IsNothing(_windream) Then + If IsNothing(_windream2) Then MsgBox("windream initialisieren") Exit Sub End If Dim arrValue() As String = Nothing ReDim Preserve arrValue(0) arrValue(0) = txtWMValue.Text - If _windream.NewIndexFile(txtWMFile.Text, txtWMIndex.Text, arrValue) = True Then - MsgBox("Success") - Else - MsgBox("no indexing") - End If + 'If _windream2.NewIndexFile(txtWMFile.Text, txtWMIndex.Text, arrValue) = True Then + ' MsgBox("Success") + 'Else + ' MsgBox("no indexing") + 'End If End Sub Private Sub Button2_Click_1(sender As Object, e As EventArgs) Handles Button2.Click My.Settings.Save() - If IsNothing(_windream) Then + If IsNothing(_windream2) Then MsgBox("windream initialisieren") Exit Sub End If - Dim DTResults As DataTable = _windream.GetSearchDocuments(txtwmsearch.Text, "Dokument-ID") + + Dim DTResults As DataTable = _windream2.GetSearchDocuments(txtwmsearch.Text, "Dokument-ID") If DTResults.Rows.Count > 0 Then GridControl1.DataSource = DTResults Else @@ -103,13 +103,13 @@ Public Class Form1 Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click Dim items As New List(Of String) - items = _windream.GetChoicelistItems(ComboBox1.Text) + items = _windream2.GetChoiceListItems(ComboBox1.Text) MsgBox("choicelist items:" & vbNewLine & (String.Join(vbNewLine, items.ToArray))) End Sub Private Sub ComboBox1_Click(sender As Object, e As EventArgs) Handles ComboBox1.Click - Dim lists = _windream.GetChoiceLists() + Dim lists = _windream2.GetChoiceLists() ComboBox1.Items.Clear()