У меня есть приложение, которое, когда он работает, реализует много заданий, в которых мне интересно знать, были ли выполнены или нет они (кто делает их, - важны, пользователи). Я использую файл и там сохраняю все то, за что оно последует, но предполагаю, что существует что-то более изощренное, чем это не? Если они сохраняют на уровне операционной системы?
Немного моего кода:
string Usuario = "", Accion = "";
StreamWriter MiArchivillo = new StreamWriter("Path");
if(Accion=="Hizo cosa1")
MiArchivillo.WriteLine(Usuario + "Hizo cosa1");
if (Accion == "Hizo cosa2")
MiArchivillo.WriteLine(Usuario + "Hizo cosa2");
if (Accion == "Error")
MiArchivillo.WriteLine(Usuario + "Paso Error");
MiArchivillo.Close();
Кларо Пепес. Работать с файлом - хорошая идея, хотя ты также можешь делать это с событиями Windows. Таким образом, именно человек той, кто будет сохранять информацию чувствует себя на компьютере. Я оставляю тебе код:
class Program
{
public const string Source = "MyConsoleApplication";
public const string LogName = "MyCustomLog";
static void Main(string[] args)
{
int NumberOfTurns = 0;
if (!EventLog.SourceExists(Source))
EventLog.CreateEventSource(Source, LogName);
do
{
//When you have an error in your application
if (NumberOfTurns == 0)
EventLog.WriteEntry(Source, GetMesssage("Error"), EventLogEntryType.Error, 111, 20);
else if(NumberOfTurns ==1)
EventLog.WriteEntry(Source, GetMesssage("FailureAudit"), EventLogEntryType.FailureAudit, 222,21);
//When your application executed something without problems
else if (NumberOfTurns == 2)
EventLog.WriteEntry(Source, GetMesssage("Information"), EventLogEntryType.Information, 333,22);
else if (NumberOfTurns == 3)
EventLog.WriteEntry(Source, GetMesssage("SuccessAudit"), EventLogEntryType.SuccessAudit, 444,23);
//When your application found something suspect at the moment to ran
else if (NumberOfTurns == 4)
EventLog.WriteEntry(Source, GetMesssage("Warning"), EventLogEntryType.Warning, 555,24);
NumberOfTurns++;
} while (NumberOfTurns<5);
}
public static string GetMesssage(string MessageType)
{
if (MessageType == "Error")
return "The application fail";
else if (MessageType == "FailureAudit")
return "There is something wrong";
else if (MessageType == "Information")
return "The operation was executed successfully";
else if (MessageType == "SuccessAudit")
return "The application run ok";
else
return "Warning: Behavior suspect";
}
}
Уже ты видишь результаты с: Административные программные средства> Браузер Событий> Реестры Windows
То, что ты ищешь, называются книжный магазин или framework для Logging. Эти книжные магазины позволяют:
Для.Net существуют несколько книжных магазинов, которые ты можешь использовать, между ними
ты Можешь находить более пространный список здесь . Книжные магазины, упомянутые также находятся в этом списке, но которых я проверил, эти 2, кажется, имеют более активную работу до даты.
Дорожка, которую ты берешь, - правильная, не является плохое сохранять в файле log действия приложения.
Как комментируй @Luiggi, вместо того, чтобы ты сами создаешь cГіdigo, что он пишет в файле, существуют книжные магазины, которые они могут конфигурировать, чтобы давать возможность или нет log, когда ты будешь нуждаться, Log4Net
самый известный.
>>, Если они сохраняют на уровне операционной системы?
, Если идея состоит в том, чтобы сохранять в операционной системе, ты мог бы использовать Event View
, на который ты соглашаешься с Control Panel
в Administrative tools
. Чтобы писать в log windows ты использовал бы классы .NET
предоставляй: EventLog
, которые под namespace System.Diagnostics
.
Воркинг Вит Эвентвьевер Усинг C # Фор Бехиннерс
Что-то, что не podГ, - чтобы прекращать упоминать, связано, что, если ты осуществляешь книжные магазины, как Log4Net эти в Ваш configuraciГіn позволяют менять судьбу log dinamicamente, не только ты ограничена в текстовых файлах, ты можешь также loguear в EventView
windows
Log4Net - writing to windows event log with ASP.NET
Только должен определять в конфигурации EventLogAppender
по этой причине дело в том, что эти книжные магазины такие популярные, ты ничего не касаешься cГіdigo и можешь меняться, где ты хочешь зарегистрировать als поступающие данные log.
Я думаю, что намного лучше позволять log архива, чтобы eventlog Сейчас столкнулся с одной aplicaciГіn, что, хотя он говорит, что он пишет, в eventlog не появляется в определенных обстоятельствах. и никто не знает porquГ©. eventviewer падает, исчезают самые древние записи и это роды искать любую вещь. одинокий eventlog служит для того, чтобы регистрировать очень общие ошибки, но он для чего-то более подробного не делает ему вес в запись архива