EDMIService: Reload Config every 5 mins and change tracelogging/debug logging based on debug option in config
This commit is contained in:
parent
2cbafff539
commit
33d3af4de8
@ -4,7 +4,10 @@
|
|||||||
</configSections>
|
</configSections>
|
||||||
<system.diagnostics>
|
<system.diagnostics>
|
||||||
<sources>
|
<sources>
|
||||||
<source name="System.ServiceModel" switchValue="Information,ActivityTracing" propagateActivity="true">
|
<source name="System.ServiceModel"
|
||||||
|
switchValue="Warning"
|
||||||
|
switchType="DigitalData.Services.EDMIService.TraceSwitch, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
|
||||||
|
propagateActivity="true">
|
||||||
<listeners>
|
<listeners>
|
||||||
<add name="xml" />
|
<add name="xml" />
|
||||||
</listeners>
|
</listeners>
|
||||||
|
|||||||
@ -133,6 +133,7 @@
|
|||||||
<Compile Include="Helpers\Exceptions.vb" />
|
<Compile Include="Helpers\Exceptions.vb" />
|
||||||
<Compile Include="Helpers\DatabaseResult.vb" />
|
<Compile Include="Helpers\DatabaseResult.vb" />
|
||||||
<Compile Include="EDMIService.vb" />
|
<Compile Include="EDMIService.vb" />
|
||||||
|
<Compile Include="Helpers\TraceSwitch.vb" />
|
||||||
<Compile Include="Scheduler\Scheduler.vb" />
|
<Compile Include="Scheduler\Scheduler.vb" />
|
||||||
<Compile Include="Scheduler\DatatableJob.vb" />
|
<Compile Include="Scheduler\DatatableJob.vb" />
|
||||||
<Compile Include="Scheduler\JobListener.vb" />
|
<Compile Include="Scheduler\JobListener.vb" />
|
||||||
|
|||||||
34
Service.EDMIService/Helpers/TraceSwitch.vb
Normal file
34
Service.EDMIService/Helpers/TraceSwitch.vb
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
Public Class TraceSwitch
|
||||||
|
Inherits SourceSwitch
|
||||||
|
|
||||||
|
Public Sub New(Name As String)
|
||||||
|
MyBase.New("System.ServiceModel")
|
||||||
|
Level = SourceLevels.Information
|
||||||
|
WcfTracesController.Instance.LevelController = AddressOf WcfTracesLevelController
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub WcfTracesLevelController(ByVal level As SourceLevels)
|
||||||
|
Me.Level = level
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class WcfTracesController
|
||||||
|
Private Shared Controller As WcfTracesController = Nothing
|
||||||
|
|
||||||
|
Private Sub New()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Delegate Sub TraceLevelController(ByVal level As SourceLevels)
|
||||||
|
Public LevelController As TraceLevelController
|
||||||
|
|
||||||
|
Public Shared ReadOnly Property Instance As WcfTracesController
|
||||||
|
Get
|
||||||
|
|
||||||
|
If Controller Is Nothing Then
|
||||||
|
Controller = New WcfTracesController()
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return Controller
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
End Class
|
||||||
@ -9,15 +9,11 @@ Public Class ServiceHost(Of T)
|
|||||||
MyBase.New(GetType(T), baseAddresses)
|
MyBase.New(GetType(T), baseAddresses)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Public Sub EnableMetadataExchange(ByVal Optional EnableHttpGet As Boolean = True)
|
Public Sub EnableMetadataExchange(ByVal Optional EnableHttpGet As Boolean = True)
|
||||||
If State = CommunicationState.Opened Then
|
If State = CommunicationState.Opened Then
|
||||||
Throw New InvalidOperationException("Host is already opened")
|
Throw New InvalidOperationException("Host is already opened")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dim oMetadataBehavior As ServiceMetadataBehavior = Description.Behaviors.Find(Of ServiceMetadataBehavior)()
|
Dim oMetadataBehavior As ServiceMetadataBehavior = Description.Behaviors.Find(Of ServiceMetadataBehavior)()
|
||||||
|
|
||||||
If oMetadataBehavior Is Nothing Then
|
If oMetadataBehavior Is Nothing Then
|
||||||
|
|||||||
@ -63,6 +63,19 @@ Public Class WindowsService
|
|||||||
_Config = _ConfigManager.Config
|
_Config = _ConfigManager.Config
|
||||||
_LogConfig.Debug = _ConfigManager.Config.Debug
|
_LogConfig.Debug = _ConfigManager.Config.Debug
|
||||||
|
|
||||||
|
UpdateTraceLogging()
|
||||||
|
|
||||||
|
Dim oTimer As New Timers.Timer(60000)
|
||||||
|
AddHandler oTimer.Elapsed, Sub()
|
||||||
|
_Logger.Debug("Reloading config..")
|
||||||
|
_ConfigManager.Reload()
|
||||||
|
_Config = _ConfigManager.Config
|
||||||
|
_LogConfig.Debug = _ConfigManager.Config.Debug
|
||||||
|
|
||||||
|
UpdateTraceLogging()
|
||||||
|
End Sub
|
||||||
|
oTimer.Start()
|
||||||
|
|
||||||
_Logger.Debug("Connecting to Databases")
|
_Logger.Debug("Connecting to Databases")
|
||||||
|
|
||||||
_Firebird = StartFirebird()
|
_Firebird = StartFirebird()
|
||||||
@ -119,6 +132,18 @@ Public Class WindowsService
|
|||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub UpdateTraceLogging()
|
||||||
|
' Changing Tracelevels programmatically,
|
||||||
|
' See: https://wcfpro.wordpress.com/2010/11/21/how-to-add-wcf-traces-programmatically/
|
||||||
|
Dim oTraceLevel = SourceLevels.Off
|
||||||
|
|
||||||
|
If _ConfigManager.Config.Debug Then
|
||||||
|
oTraceLevel = SourceLevels.Warning
|
||||||
|
End If
|
||||||
|
|
||||||
|
WcfTracesController.Instance.LevelController(oTraceLevel)
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Function StartFirebird() As Firebird
|
Private Function StartFirebird() As Firebird
|
||||||
_Logger.Debug("Connecting to Firebird")
|
_Logger.Debug("Connecting to Firebird")
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user