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.