在此过程中定义日志文件的位置



我正在尝试创建日志文件而不事先定义其目标,但是在运行时间内,如何做?这里MyApp.exe.log4net

<log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <!-- <file type="log4net.Util.PatternString" value="%property{LogFileName}.txt"/>-->
      <file value="D:Log.log" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="50MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <root>
       <level value="ALL" />
       <appender-ref ref="RollingFileAppender" />
    </root>
</log4net>

这是我的日志初始:

// init-log
string appName = Path.GetFileName(Assembly.GetExecutingAssembly().Location) + ".log4net";
string appPth = AppDomain.CurrentDomain.BaseDirectory;
CLog.LogInit(Path.Combine(appPth, appName));
CLog.WriteLog(LogLevelL4N.INFO, "(Program) MyApp application started.");
// init-log

这是Lib.Clog类:

public static class CLog
{
        public static void LogInit(string configFile, bool useAltLogFileNamePath = false, string altLogFileNamePath = "");
        public static void WriteDebugLog(string header, string subject, string detail, string note = "");
        public static void WriteExceptionLog(string header, Exception ex);
        public static void WriteInfoLog(string header, string subject, string detail, string note = "");
        public static void WriteLog(LogLevelL4N logLevel, string log);
}

现在,日志文件始终转到D:Log.log,但我希望该位置将在该过程中定义

您是否尝试过:

XmlConfigurator.LogFullFilename = @"c:pathMyapp.log";

最新更新