I wanted to do somehting similar, and used the fact that some log4net
parameters can be picked up from environment vars
 
so in my code I set an env var JCE_LOG_FILE
 
string logFile = dir + "\\" + AppName + "." + CurrentNTUser;
Environment.SetEnvironmentVariable("JCE_LOG_FILE", logFile);

Then configure log4net
 
    log4net.Config.XmlConfigurator.Configure(new FileInfo(configFile));

and in the config file
 
  <appender name="file" type="log4net.Appender.RollingFileAppender">
    <file value="${JCE_LOG_FILE}"/>
    <appendToFile value="true"/>
    <staticLogFileName value="false"/>
    <rollingStyle value="Date"/>
    <datePattern value=".yyyy-MM-dd&quot;.log&quot;"/>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date{ISO8601} [%thread] %-5level
%logger - %message%newline" />
    </layout>
  </appender>

Obviously to make this work you need to control yourself when you
configure log4net. Not sure how you would use this to get the actual
pattern you want - eg you would have to check if 'datePattern' can be
picked up from an env var. I tried to use JC_LOG_LEVEL to set the root
logging level and it didnt work ..
 
Alasdair
 

________________________________

        From: Leo Mathew [mailto:le...@sonata-software.com] 
        Sent: 09 February 2010 08:09
        To: Log4NET User
        Subject: Want to modify my existing log file name to include a
dynamic variable value
        
        

        

        Hi All,

        I want to modify my existing log file name to include a dynamic
variable value.

        Below is my log file.

        

        <?xml version="1.0" encoding="utf-8" ?>

        <log4net debug="false">

                <appender name="RollingLogFileAppender"
type="log4net.Appender.RollingFileAppender,log4net">

                        <param name="File" value="logs\\intserver" />

                        <param name="AppendToFile" value="true" />

                        <param name="StaticLogFileName" value="False" />

                        <param name="RollingStyle" value="Date" />

                        <param name="DatePattern"
value="'.'yyyy-MM-dd'.txt'" />

                        <param name="RequestId" value="99" />

                        <layout
type="log4net.Layout.PatternLayout,log4net">

                                <param name="ConversionPattern"
value="%d [%t] %-5p %c{1} - %m%n" />

                        </layout>

                </appender>

                

                <root>

                        <level value="DEBUG" />

                        <appender-ref ref="RollingLogFileAppender" />

                </root>

        </log4net>


        Based on the above my existing or today's log file name is
intserver.2010-02-09.txt where 2010-02-09is today's date


        I have a dynamic variable which I need to set in C#. In case the
value for my dynamic variable is 1000, my log file should be
intserver.2010-02-09.1000.txt

        Does any one know how this can be done?

        

        Regards,

        Leo

________________________________
The information contained in this transmission
is intended only for the person or entity to 
which it is addressed and may contain confid-
ential and/or privileged information. If you 
are not the intended recipient (or have received 
this e-mail in error) please notify the sender 
immediately and delete this e-mail. Any unauth-
orised copying, disclosure or distribution of
the material in this e-mail is strictly forbidden.

Reply via email to