After reading an article on the codeproject about PostSharp and Log4Net.
So I tried to replicate that in VB.Net and hit a bump in the road. But here is how it got solved in the end.
So like the instructions say I downloaded PostSharp and installed it. I also downloaded the log4postsharp sourcecode.
Then I created a consoleapplication.
I set the references Log4PostSharp.dll and PostSharp.Public.dll (you can find this library on the “.NET” tab of the “Add reference…” dialog). And a reference to the log4net dll.
I then added some code to the module.
- Imports Log4PostSharp
- Module Module1
- Sub Main()
- Console.WriteLine(Add(1, 1))
- Console.ReadLine()
- Dim sum As Integer
- sum = Add(1, 2)
- Console.WriteLine(Add(1, 1))
- Console.ReadLine()
- End Sub
- <Log(EntryLevel:=LogLevel.Debug, EntryText:="Adding {@i1} to {@i2}.", ExitLevel:=LogLevel.Debug, ExitText:="Result of addition is {returnvalue}.")> _
- Private Function Add(ByVal i1 As Integer, ByVal i2 As Integer) As Integer
- Return i1 + i2
- End Function
- End Module
Then I added an app.config file.
And added these log4net configurationsetting to it.
- <?xml version="1.0" encoding="utf-8" ?>
- <configuration>
- <configSections>
- <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
- </configSections>
- <log4net>
- <appender name="MainAppender" type="log4net.Appender.ConsoleAppender">
- <layout type="log4net.Layout.PatternLayout">
- <conversionPattern value="%date [%thread] %-5level %logger %ndc - %message%newline" />
- </layout>
- </appender>
- <root>
- <level value="ALL" />
- <appender-ref ref="MainAppender" />
- </root>
- </log4net>
- </configuration>
But that did nothing, in the logging sense anyway.
So to make sure I didn’t make a mistake in the log4net configuration, I added this to the main method.
- log4net.Config.BasicConfigurator.Configure()
- Dim log As log4net.ILog = log4net.LogManager.GetLogger("logger-name")
- log.Debug("test")
- Console.ReadLine()
and that made the log line for me. Just the one, not the one from log4postsharp.
So I posted a question on the postsharp forum. And I got a reply the same day.
So I added this to the AssemblyInfo.vb
- <Assembly: XmlConfigurator(Watch:=True)>
And then I removed these lines again
- log4net.Config.BasicConfigurator.Configure()
- Dim log As log4net.ILog = log4net.LogManager.GetLogger("logger-name")
- log.Debug("test")
- Console.ReadLine()
and everything works as expected.





LTD Social Sitings
Note: Watch for social icons on posts by your favorite authors to follow their postings on these and other social sites.