Logging is useful to track application behavior and troubleshooting. There are many ways to accomplish this task, and one popular way is with log4net. It is a free library that developer can use to log application behavior to text files.
In this article, I will show steps by steps using log4net in the Mi-Forms environment.
Step 1:
Donwload log4net dll at:
http://logging.apache.org/log4net/
Step 2:
Add log4net dll as a reference in the Mi-Forms Designer .NET Script editor
Step 3:
Setup default configuration for log4net:
Sub Log4NetConfig(ByVal logFileName As String)
Dim layout As log4net.Layout.PatternLayout = New log4net.Layout.PatternLayout()
layout.ConversionPattern = "%date{MM-dd-yyyy HH:mm:ss:ffff} [%t] %-5p %logger - %m%n"
layout.ActivateOptions()
Dim appender As log4net.Appender.RollingFileAppender = New log4net.Appender.RollingFileAppender()
appender.Layout = layout
appender.File = logFileName
appender.AppendToFile = True
appender.RollingStyle = log4net.Appender.RollingFileAppender.RollingMode.Size
appender.MaxFileSize = 1024
appender.MaxSizeRollBackups = 5
appender.ImmediateFlush = True
appender.ActivateOptions()
appender.Threshold = log4net.Core.Level.Off
Dim stdout As log4net.Appender.ConsoleAppender = New log4net.Appender.ConsoleAppender()
stdout.Layout = layout
stdout.ActivateOptions()
log4net.Config.BasicConfigurator.Configure(appender)
log4net.Config.BasicConfigurator.Configure(stdout)
End Sub
Step 4:
Declare a global variable and use for the whole form logic.
Dim _log As log4net.ILog
Step 5:
Call the above method Form_AfterOpen event as below:
<MiCode(FormScriptEventType.AfterOpen)> _
Public Sub Form_AfterOpen(ByVal e As AfterOpenEventArgs)
Log4NetConfig("F:\tmp\logtest.txt")
_log = log4net.LogManager.GetLogger("Instance 1")
_log.Debug("test 1")
Dim _log1 As log4net.ILog = log4net.LogManager.GetLogger("Instance 2")
_log1.Debug("test 2")
End Sub
Step 6:
Test log file:
09-11-2014 15:14:26:3816 [1] DEBUG Instance 1 - test 1
09-11-2014 15:14:26:3986 [1] DEBUG Instance 2 - test 2
You can use the log file to troubleshoot the form behavior and save a lot of time.