Enable environment variables in Log4Net file name value

I'm wondering why I can't seem to use environment variables in the following settings in a .config file for a .net application:

<appender name="RollingLogFile" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="..\\Logg\\Dashboard\\logfilename.log"/>
      <param name="AppendToFile" value="true"/>
      <param name="MaxSizeRollBackups" value="3"/>
      <param name="MaximumFileSize" value="5MB"/>
      <param name="RollingStyle" value="Size"/>
      <param name="StaticLogFileName" value="true"/>
      <param name="CountDirection" value="-1"/>
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] &lt;%X{auth}&gt; - %m%n"/>
      </layout>

Open in new window


If I try to use i.e. ${USERNAME}.log it only creates a new file with the filename ${USERNAME}.log instead of a username.

What is the correct syntax/variable to use for this, if possible at all?

This is a Windows environment
LVL 7
beesterAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Corey ScheichConnect With a Mentor DeveloperCommented:
I recall running into an issue with this with the rolling log file appender I have been configuring it through code instead of  Settings.


            Dim apdr As New Appender.RollingFileAppender()
            Dim layout As New log4net.Layout.PatternLayout("%date [%thread] %-5level %logger [%property{NDC}] - %message%newline")
            Dim Folder As String = My.Computer.FileSystem.SpecialDirectories.Temp
            With apdr
                .LockingModel = New log4net.Appender.RollingFileAppender.MinimalLock()
                .Name = "MyApplication Log"
                'Appears to be in bytes so this = 1mb
                .MaxFileSize = 1049000
                .AppendToFile = True
                .File = IO.Path.Combine(Folder, "MyApplication.log")
end with

Open in new window

0
 
Corey ScheichDeveloperCommented:
Try using %USERNAME% I believe with log4net you have to use command line syntax for file name and path.
0
 
beesterAuthor Commented:
Nope, doesn't seem to help. Tried ${%USERNAME%}, env{%USERNAME%}, {%USERNAME%} and just %USERNAME%, and all it does is to create a log file with the name as I write it, it doesn't parse the environment variables...
0
 
beesterAuthor Commented:
I checked with our head programmer, and he said that this wasn't a viable solution for us. But he also said he thought this was solved in a newer Log4Net than the one we use, so I guess I'll try upgrading first...
0
 
Corey ScheichDeveloperCommented:
Which version of log4net are you using?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.