Мы хотели бы добавить некоторый «стартовый код» для указания файла журнала при каждом обновлении двоичных файлов сайта ASP.NET. Так, например, у нас есть двоичные версии 1.0, и запись в журнал в log_JhdsgGd1.txt. В следующий раз мы исправим некоторые ошибки, а затем загрузим новые двоичные файлы версии 1.1. А теперь мы хотим, чтобы файл журнала записывал в какой-то другой файл log_h12jh3G.txt. Мы не меняем номер версии в проекте.
Я попытался сгенерировать один стартовый код один раз в Application_Start (), а затем использовать его в классе, который пишет журнал. Но, к сожалению, это не работает так, как должно быть.
ОБНОВЛЕНИЕ ПОЧТЫ
protected void Application_Start()
{
Random r = new Random();
Application["startCode"] = r.Next(100000).ToString();
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
public static class Logger
{
static internal void WriteLog(string msg, string dbname = null)
{
using (StreamWriter sw = new StreamWriter(String.Format("{0}{1}{2}", HttpContext.Current.Server.MapPath("log"), Path.DirectorySeparatorChar, String.Format("log_{0}.txt", HttpContext.Current.Application["startCode"]), true)))
{
string logEntry;
if (!String.IsNullOrEmpty(dbname))
logEntry = String.Format("{0} ({1}): {2}", DateTime.Now.ToString(), dbname, msg);
else
logEntry = String.Format("{0}: {1}", DateTime.Now.ToString(), msg);
sw.WriteLine(logEntry);
sw.WriteLine("------------");
sw.Flush();
sw.Close();
}
}
}