How to make a part of log4net message uppercase
log4net, uppercase
Solution
The solution suggested by Ron Grabowski is extending PatternConverter.
public class HostNameToUpperConverter : PatternConverter
{
protected override void Convert(TextWriter writer, object state)
{
string hostName = (string)GlobalContext.Properties[LoggingEvent.HostNameProperty];
writer.Write(hostName.ToUpper());
}
}
usage in configuration file:
<layout type="log4net.Layout.PatternLayout">
<converter>
<name value="hostNameToUpper" />
<type value="MyApplication.HostNameToUpperConverter" />
</converter>
<conversionPattern value="[%hostNameToUpper] - %message" />
</layout>
Problem
I'm using AdoNetAppender to log messages. I've added %property{log4net:HostName} conversion pattern to the message parameter. ``` <parameter> <parameterName value="@message"/> <dbType value="String"/> <size value="4000"/> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="[%property{log4net:HostName}] - %message"/> </layout> </parameter> ``` Output is like [hostname] - foo bar. But i want the output like [HOSTNAME] - foo bar. How can i make the hostname uppercase using conversion patterns? Regards, Cankut