首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在web服务上使用log4net

在web服务上使用log4net
EN

Stack Overflow用户
提问于 2013-12-24 14:48:17
回答 1查看 1.1K关注 0票数 0

我想编写一个能够将日志数据发送到syslog服务器的web服务。

建筑是这样的:

代码语言:javascript
复制
Client ---> Webservice ----> syslog server

客户端调用web服务的方式如下:

代码语言:javascript
复制
ServiceReference1.SysLogServiceClient clt = new ServiceReference1.SysLogServiceClient();
ServiceReference1.ClsSysLog temp = new ServiceReference1.ClsSysLog();
temp.date= DateTime.Now;
temp.time = DateTime.Now;
temp.processtype= "test";
temp.user= "testuser";
temp.application = "testapp";
bool result = clt.SendSysLog(temp);

Web服务有一个类和一个函数:

类:

代码语言:javascript
复制
[DataContract]
public class ClsSysLog
{
    [DataMember]
    public DateTime date{ get; set; }

    [DataMember]
    public DateTime time { get; set; }

    [DataMember]
    public string processtype { get; set; }

    [DataMember]
    public string user { get; set; }

    [DataMember]
    public string application { get; set; }    

}

功能:

代码语言:javascript
复制
private static readonly ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

public bool SendSysLog(ClsSysLog SysLogItem)
{
    try
    {
        //date|time|processtype|user|application
        string msg = String.Format("{0:yyyy-MM-dd}|{1:HH:mm:ss}|{2}|{3}|{4}|{5}|{6}", SysLogItem.date, SysLogItem.time, SysLogItem.processtype, SysLogItem.user, SysLogItem.application);
        Exception tempExt = new Exception();
        log.Info(msg, tempExt);
        return true;
    }
    catch (Exception ex)
    {
        return false;
    }
}

最后,web服务配置是:

代码语言:javascript
复制
<log4net>
    <appender name="RemoteSyslogAppender" type="log4net.Appender.RemoteSyslogAppender">
      <facility value="qradar" />
      <identity value=" %date{yyyy-MM-ddTHH:mm:ss.ffffffzzz} %P{log4net:HostName} %P{app}" />
      <RemoteAddress value="192.168.1.55" />
      <layout type="log4net.Layout.PatternLayout" value="   %P{pid}:%logger %m%n"   />
      <RemotePort value="514" />
    </appender>
    <root>
      <level value="ALL" />
      <appender-ref ref="RealtimeMonitoringAppender" />
    </root>
  </log4net>

我不知道syslog服务器在做什么,但是通过网络嗅探工具,我发现它没有来自514端口的数据包。

log.Info(msg, tempExt)函数的异常是

System.Exception:抛出了“System.Exception”类型的异常。

我不能通过web服务将syslog数据发送到服务器。

EN

回答 1

Stack Overflow用户

发布于 2013-12-24 16:10:50

可能不是问题,但我注意到在配置中,您有错误的appender名称。我会评论这一点,而不是回答,但我没有要点:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20762775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档