2015-02-13 3 views
-1

У меня есть программа на C#, которая использует ниже logFile для ведения журнала.изменить имя файла журнала динамически в app.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<appSettings> 
<add key="logFile" value="D:\logs\MyProgramLog.txt"/> 
</appSettings> 
</configuration> 


static class LoggingClass 
    { 
     public static void info(string messString) 
     { 
      try 
      { 
       //show log on console 
       Console.WriteLine(messString); 

       //write log to log file 
       using (StreamWriter sw = new StreamWriter(ConfigurationManager.AppSettings["logFile"].ToString(), true)) 
       { 
        sw.WriteLine("info: " + messString); 
       } 
      } 
      catch (Exception ex) 
      { 
      } 
     } 
} 

static void Main(string[] args) 
     { 
      LoggingClass.info("Started Program run at" +DateTime.Now); 
} 

Каждый раз, когда имя файла журнала MyProgramLog.txt. Как изменить имя журнала для MyProgramLogLog2015_02_13.txt, динамически добавить дату в имя файла журнала в файле app.config?

+0

Что вы пытаетесь достичь? Возможно, существующие решения, такие как NLog, будут соответствовать вашим потребностям? –

+0

@Alex K, очень просто. Просто пытаюсь выяснить, когда программа закончилась, когда она запускается каждый день. У нас есть некоторые проблемы на сервере, на котором я запущен. DBA хочет узнать среднее время выполнения моей программы. Итак, я хочу создать этот файл журнала. – user4405743

+0

Ну, я бы порекомендовал использовать NLog. Он может каждый день создавать новый файл журнала –

ответ

0

Это код, который вы ищете:

var path = Path.GetDirectoryName(logFile); 
var fileName = Path.GetFileNameWithoutExtension(configFile); 
var todayFileName = fileName + DateTime.Now.ToString("_yyyy_MM_dd"); 
var ext = Path.GetExtension(configFile); 
var newLogFile = path + todayFileName + ext; 
Смежные вопросы