web4でautofacを使ってlog4netを登録しています。それはコントローラで正常に動作しますが、私は同じソリューションで共通のライブラリプロジェクトクラスに同じlog4netインスタンスを使用することができます。CommonLibraryプロジェクトでLog4NetとAutofacを使用する方法
ウェブAPIにautofacを使用してlog4netを登録するために、以下のコードを使用しました。
// IOC Container Setup uisng Autofac
var builder = new ContainerBuilder();
// Register your Web API controllers.
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.Register(c => LogManager.GetLogger(typeof(Object))).As<ILog>();
builder.RegisterWebApiFilterProvider(config);
builder.RegisterModule<AMLWebApiModule>();
builder.RegisterFilterProvider();
var container = builder.Build();
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
私は共通ライブラリプロジェクトのプロパティとしてロガーを使用しています。 public ILog logger { get; set; }
メッセージをログに記録しようとしたときに例外が発生しました。
オブジェクト参照がオブジェクトのインスタンスに設定されていません。
共通ライブラリプロジェクトでlog4netを使用するにはどうすればよいですか。
インタフェースではなく抽象クラスに対してクラスを登録するにはどうすればよいですか? –
それはインターフェイスのように試してみて、私はそれが動作するはずだと思う。 – Prashant