我有一个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数据库中?
答案 0 :(得分:2)
Log4Net是高度可配置的,并指定&#34;其中&#34;要记录,它使用&#34; appender&#34;概念。在文件/数据库/队列中写入了很多appender,如果需要(通常不是),你可以编写自己的appender。 无论如何,从这里开始查看示例:https://logging.apache.org/log4net/release/config-examples.html 有些人在你的代码中,通常在应用程序初始化时,你必须调用:
XmlConfigurator.Configure()
这将从应用程序配置文件中读取配置。 或者,您可以以编程方式配置log4net,但如果以前从未使用过手动配置,那么它可以是高级的,因此我建议您开始查看上面的示例并使用文件中的配置。 如果没有提供配置,log4net工作正常但是......根本没有生成日志,我认为这是你现在无法找到任何日志的原因。