log4net如何获取Log错误的输出?

时间:2017-06-26 15:12:16

标签: c# log4net

我有一个c#web应用程序,我希望能够看到Service.asmx.cs部分中抛出的错误。即当sql语句失败或我拼写错误的变量名时等等。我对.net很新,但我的应用程序模板已经安装了log4net。

 protected static log4net.ILog Log = EarthSoft.Common.log4net.GetLogger(typeof (Service));

然后我的get方法是:

   [WebMethod(Description = "Get a list of facilities")]

public List<Facility> GetFacilities() 
{
  try
  {
    var context = EarthSoft.Server.Helpers.RequestContext.GetRequestContext(true);

    if (context.Connection == null || context.User == null) return null;

    var lst = new List<Facility>();

    string sql =

       string.Format("select analyte_full,conc from dt_biological");

    var cmd = context.Connection.CreateCommand(sql);
    context.Connection.PrepareTextCommand(cmd);
    using (var reader = cmd.ExecuteReader())
    {
      while (reader.Read())
      {
        lst.Add(new Facility()
          {

            name = (string)reader.GetValue(0),
            distance  = (decimal)reader.GetValue(1)
        });
      }
    }
    context.Connection.Close();

    return lst;
  }
  catch (Exception ex)
  {
    Log.Error(ex.Message, ex);
    return null;
  }
}

因此错误消息会附加到Log这里,但我不知道如何 访问它或写日志的地方?是否有可能将日志输出保存到某个表的sql数据库中?

1 个答案:

答案 0 :(得分:2)

Log4Net是高度可配置的,并指定&#34;其中&#34;要记录,它使用&#34; appender&#34;概念。在文件/数据库/队列中写入了很多appender,如果需要(通常不是),你可以编写自己的appender。 无论如何,从这里开始查看示例:https://logging.apache.org/log4net/release/config-examples.html 有些人在你的代码中,通常在应用程序初始化时,你必须调用:

XmlConfigurator.Configure()

这将从应用程序配置文件中读取配置。 或者,您可以以编程方式配置log4net,但如果以前从未使用过手动配置,那么它可以是高级的,因此我建议您开始查看上面的示例并使用文件中的配置。 如果没有提供配置,log4net工作正常但是......根本没有生成日志,我认为这是你现在无法找到任何日志的原因。