私はc#Webアプリケーションを持っており、Service.asmx.csセクションにエラーがスローされるのを見たいと思っています。私。 SQLステートメントが失敗するか、間違った変数名がついてしまったときなど。私はかなり新しい.netですが、私が持っているアプリケーションのテンプレートはlog4netがインストールされています。 log4netログエラーの出力を取得するにはどうすればよいですか?
[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;
}
}
だからエラーメッセージがここにログに追加されますが、私は考えどのように のアクセスを持っていないか、ログを書き込む場所:
protected static log4net.ILog Log = EarthSoft.Common.log4net.GetLogger(typeof (Service));
その後、私のgetメソッドはありますか?ログ出力がどこかのSQLデータベースにテーブルに保存される可能性はありますか?
このチュートリアルのhttps://www.codeproject.com/Articles/140911/log-net-Tutorialを参照してください。そして、このhttps://www.codeproject.com/Articles/11328/Configure-Log-Net-for-Desktop-and-Web-Applications –
*間違った変数名のスペル.. *はコンパイルエラーです、あなたのコードは 'コンパイル?通常、ランタイムエラー、ロジックのギャップなどをログに記録します。意味がなく、コンパイルエラーをログに記録することもできません。 – Liam
ありがとうございます、変数名がコンパイル時に捕捉されるでしょう。失敗した場合に備えてtry catchステートメントのLogセクションにアクセスする方法を知りたかっただけです!チュートリアルを読んでくれてありがとう。 –