EventLog.WriteEntry(  "SecondSource  ",  "message",                                       EventLogEntryType.Error,myEventID  ,myCategory  );  myCategory是short类型,
可是我想让 myCategory (即日志中分类的内容显示字符串)

解决方案 »

  1.   

    category 
    与消息关联的应用程序特定子类别。 请查看windows API宝典获得
      

  2.   

    short是什么类型我还真没有查到.可以试试
    myCategory.ToString();
      

  3.   

    查看windows API宝典获得?我不会写,请给我个完整的代码 .
      

  4.   

    这里myCategory一个数字可能是对应到一个字符串吧.你用short数试了吗?出现什么结果?
      

  5.   

    EventLog.WriteEntry(  "SecondSource  ",  "message",                                       EventLogEntryType.Error,myEventID  ,myCategory.ToString()  );  不就搞定了。
    而且这种方法并不建议使用,这会将你系统的日志写满吧?呵呵。
    建议使用Trace.
    例:
    Trace.Listeners.Remove("Default");
    Trace.Listeners.Add(new System.Diagnostics.TextWriterTraceListener("trace.log"));
    这样,在程序中的任何地方,使用的Trace.Write或Trace.WriteLine都能很好地记录日志。
    而且还是线程安全的。
      

  6.   

    当然通过Trace还可以记录系统日志,只要加上相应的Listener就可以了。
    缺省的Listener是写到控制台的。
    还有一种Listener是写到系统日志的。
    无论你加多少个Listener,你在Trace中调用一次,所以的Listener指向的地方都会记录日志。这个特性才叫爽呢。
    事实上我还可以自己编写写入数据库的Lisenter,注意写入数据库的,然后在主程序入口处注册一下,就搞定了。呵呵。
    强烈建议使用功能强大的Trace类。
    事实上,Trace还可以app.config或者web.config中配置。
    那样的话,你修改主程序的麻烦都省却了。
    <configuration>
    <system.diagnostics>
        <switches>
            <add name="MagicTraceSwitch" value="3" />
        </switches>
        <trace autoflush="false" indentsize="4">
            <listeners>
               <add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\myListener.log" />
               <!-- You must supply a valid fully qualified assembly name here. --> 
               <remove type="Assembly text name, Version, Culture, PublicKeyToken"/> 
            </listeners>
        </trace>
    </system.diagnostics>
    </configuration>可以利用的Listener类有:
    System.Object
       System.MarshalByRefObject
          System.Diagnostics.TraceListener
             System.Diagnostics.DefaultTraceListener
             System.Diagnostics.EventLogTraceListener
             System.Diagnostics.TextWriterTraceListener
      

  7.   

    System.Diagnostics.EventLogTraceListener就是写系统日志的。