2012-05-09 2 views
0

Я использую RollingFileAppender (log4net) для регистрации событий 24/7-приложения в файле. Имя файла должен быть следующими:C# log4net: DateTimeFormat с пробелами

"блабли-2012- 3- 6.txt" или "блабли-2012-13- 6" или "блаб-2012- 3-12.txt"

Проблема в том, что я не знаю формат DateTime, который использовал бы пробелы вместо нуля.

RollingFileAppender appender = new RollingFileAppender(); 
       appender.Name = String.Format ("{0} appender_", name); 
       appender.File = string.Format ("{0} {1} {2} {3}", logPath, @ "\", file, name, extension); 
       appender.AppendToFile = true; 
       appender.LockingModel = new FileAppender.MinimalLock(); 
       appender.StaticLogFileName = false; 
       ->> Appender.DatePattern = string.Format ("yyyy-M-d"); 
.... 
+0

Не можете ли вы использовать/10, чтобы определить погоду месяц/день, это один символ и добавить «», а затем месяц/день? – t3hn00b

+0

сегодня, используя NLog с настраиваемым контекстом событий. https://github.com/NLog/NLog/wiki/EventContext-Layout-Renderer – SteMa

ответ

0

Log4Net использует следующие определения имени файла в прокатном файла Appender:

m_scheduledFilename = 
CombinePath(File, m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo)); 

, где, как вы догадываетесь m_now является текущей даты и времени. Таким образом, вы можете использовать все DateTime available custom formats, и я думаю, что формат, который вам нужен, отсутствует из коробки. Итак, если вам абсолютно нужен такой формат, вы можете написать собственный пользователь, выведя его из RollingFileAppender и переопределив метод RollOverTime.

0

Вы можете разместить литералов в строке формата:

Appender.DatePattern = "yyyy- M- d"; // don't need string.Format 

ли это, что не работает?

Редактировать: Теперь я понимаю: вы хотите ММ, но вместо «05» вы хотите «5». Форматирование DateTime не способ облегчить это. Вы можете создать свою собственную производную RollingFileAppender, которая пытается обрабатывать форматирование этого специального случая.

+0

И когда это будет 13 октября, это будет 2012-10-13, насколько я могу это сделать – t3hn00b

Смежные вопросы