首页 > 代码库 > 关于写入Windows Log Event却没有任何记录的问题

关于写入Windows Log Event却没有任何记录的问题

在本机或者服务器上,写入Windows Event Log日志代码,执行了没有报错,但是打开Windows Event Log记录面板,却看不到任何记录,很可能是你当前用户没有权限是写入东西。此时,我们做一些配置,就可以使当前用户拥有写入Event Log的权限。


设置:“开始->运行”,输入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,选择“安全->权限->添加”,然后找到本机的“LiLei”用户,加进来并且给读取权限就好了。但是这个前提是,你要有一个可以添加权限的用户。比如我现在登录机器的用户是一个普通用户A,执行写入代码后,根本写不进去。然后需要管理员登录,按照上边的方法,赋予A权限,然后A再登录后,在执行这些代码,就可以写入了。





注意:有时候不仅仅是Window Event Log, 在将程序Windows Service部署到服务器上之后,为了调试,会向某个目录的txt文件中写入日志内容。但是查看Log日志文件,却发现里边什么也没有,但是程序也没有抛出异常,那么很有可能是你的Windows Service使用的账户,没有向这个目录写入能容的权限。示例代码是使用Enterprise Libarry Logging写入日志文件。

namespace LoggingApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个日志条目
            LogEntry log = new LogEntry();
            //指定该日志所属类别
            log.Categories.Add("Fixed");
            //日志标题
            log.Title = "SHY520's Tests";
            log.Message = "there is log information";
            //优先级
            log.Priority = 0;

            Logger.Write(log);

            Console.ReadLine();
        }
    }
}