2013-07-19 5 views
1

Как я могу сделать вывод в txt? но не в журнале событийВывод в txt в библиотеке классов C#

public class ProjectHandler:Microsoft.Office.Project.Server.Events.ProjectEventReceiver { 

} 

public static void WriteToEventLog(string textLog, EventLogEntryType logtype) { 
    EventLog eventlog = new EventLog(); 
    eventlog.Source = "Project Event Handler"; 
    eventlog.WriteEntry(logtype.ToString() + ":" + textLog, logtype); 

} 

public override void OnDeleting(PSContextInfo contextInfo, ProjectPreEventArgs e) { 

    WriteToEventLog(string.Format("Пользователь \"{0}\" удалил проект \"{1}\"", contextInfo.UserName, e.ProjectName), EventLogEntryType.Information); 

    base.OnDeleting(contextInfo, e); 
} 
+0

Пожалуйста, будьте осторожны с форматированием. Взгляните на http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks и http://stackoverflow.com/editing-help –

ответ

1

вместо того, чтобы писать в журнал событий, вы должны написать текстовый файл

Добавить этот метод

public static void WriteToTextFile(string textLog) 
{ 
    FileStream objFS = null; 


    string strFilePath = AppDomain.CurrentDomain.BaseDirectory + @"\Exception Log\" + System.DateTime.Now.ToString("yyyy-MM-dd ") + "Exception.log"; 
    if (!File.Exists(strFilePath)) 
    { 
      objFS = new FileStream(strFilePath, FileMode.Create); 
    } 
    else 
      objFS = new FileStream(strFilePath, FileMode.Append); 

    using (StreamWriter Sr = new StreamWriter(objFS)) 
    { 
     Sr.WriteLine(System.DateTime.Now.ToShortTimeString() + "---" + textLog); 
     } 

} 

затем изменить эту строку

WriteToEventLog(string.Format("Пользователь \"{0}\" удалил проект \"{1}\"", contextInfo.UserName, e.ProjectName), EventLogEntryType.Information); 

в

WriteToTextFile(string.Format("Пользователь \"{0}\" удалил проект \"{1}\"", contextInfo.UserName, e.ProjectName)); 
+0

Большое спасибо! –

0
public override void OnDeleting(PSContextInfo contextInfo, ProjectPreEventArgs e) 
    { 
     using (System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\Blah.txt")) 
     { 
      string textToWrite = string.Format("Пользователь \"{0}\" удалил проект \"{1}\"", contextInfo.UserName, e.ProjectName); 
      sw.WriteLine(textToWrite); 
     } 
    } 

Что-то вроде этого. Используйте объект StreamWriter.

EDIT Очевидно, что у вас есть доступ к записи на диск C: \ и т. Д. И где бы вы ни хотели писать.

0

Использование File.WriteAllText способ.

string path = @"c:\temp\MyTest.txt"; 
string createText = "Hello and Welcome" + Environment.NewLine; 
File.WriteAllText(path, createText, Encoding.UTF8); 
Смежные вопросы