How do I insert tabs in the log4net layout pattern?

mark picture mark · Oct 14, 2010 · Viewed 16k times · Source

My need is simple - I want to be able to open my text log file in excel, so that it automatically breaks it in columns matching the log fields.

For that, I need the log fields separated with a tab.

My pattern is: %utcdate [%thread] %-5level %logger - %message%newline

I need something like: %utcdate%tab[%thread]%tab%-5level%tab%logger%tab%message%newline

Thanks.

Answer

T.J. Crowder picture T.J. Crowder · Oct 14, 2010

Caveat: I haven't actually used log4net. But if I understand correctly, the configuration is an XML file, isn't it? And the pattern is just text with some special tokens. So have you tried embedding actual tab characters in your pattern? The XML sequence for a tab is 	, e.g.:

<conversionPattern value="%utcdate&#9;[%thread]&#9;%-5level&#9;%logger&#9;%message%newline" />

Or if you're supplying the pattern some other way (perhaps via the PatternString constructor or whatever), just include tab characters in the string you're passing in. The docs for that constructor defer to the PatternLayout docs to talk about the string itself, and there they say:

You are free to insert any literal text within the conversion pattern.

(Their emphasis.) Worth a try, anyway...