public void WriteToErrorLog(Exception ex, string src) { string name = Environment.UserName; string domain = System.Security.Principal.WindowsIdentity.GetCurrent().Name; NTAccount act = new NTAccount(domain); DirectoryInfo dirinfo = new DirectoryInfo(logFile); DirectorySecurity sec = dirinfo.GetAccessControl(); // FileSecurity sec = File.GetAccessControl(logFile); sec.AddAccessRule( new FileSystemAccessRule( act, FileSystemRights.Write | FileSystemRights.ListDirectory, InheritanceFlags.ContainerInherit, PropagationFlags.InheritOnly, AccessControlType.Allow ) ); //File.SetAccessControl(logFile, sec); //if (permissionset.IsSubsetOf(AppDomain.CurrentDomain.PermissionSet)) //{ StreamWriter streamwr = new StreamWriter(logFile, true); //Error: access denied //new FileStream(logFile, FileMode.Append, FileAccess.Write) streamwr.WriteLine("------{0}-------", DateTime.Now); if (ex.InnerException != null) { streamwr.Write("Inner exeption Type: "); streamwr.WriteLine(ex.InnerException.GetType().ToString()); streamwr.Write("Inner exeption: "); streamwr.WriteLine(ex.InnerException.Message); streamwr.Write("Inner Source: "); streamwr.WriteLine(ex.InnerException.Source); streamwr.WriteLine(ex.InnerException.StackTrace); } streamwr.Write("Exception Type: "); streamwr.WriteLine(ex.GetType().ToString()); streamwr.WriteLine("Exception: " + ex.Message); streamwr.WriteLine("Source: " + src); streamwr.WriteLine("Stack Trace: "); if (ex.StackTrace != null) { streamwr.WriteLine(ex.StackTrace); streamwr.WriteLine(); } streamwr.Close(); }
logfile
DirectoryInfo
FileInfo
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)