「.NET Frameworkと.NET Coreの差異」の版間の差分
(→log4netの使い方) |
|||
16行目: | 16行目: | ||
==log4netの使い方== | ==log4netの使い方== | ||
− | 通常、log4netを使用する場合、<tt>AssemblyInfo.cs</tt>やアプリケーションの<tt>.config</tt>ファイルに設定等を含める必要がある。しかし、<tt> | + | 通常、log4netを使用する場合、<tt>AssemblyInfo.cs</tt>やアプリケーションの<tt>.config</tt>ファイルに設定等を含める必要がある。しかし、<tt>AssemblyInfo.cs</tt>は.NET Coreには含まれないため、別の方法を使用する必要がある。 |
具体的には……。 | 具体的には……。 |
2017年4月24日 (月) 21:32時点における最新版
以下はプログラミング上での.NET Frameworkと.NET Coreの違いをまとめたもの。
StreamReader等のシグネチャの違い
.NET Frameworkでは以下のようにStreamReaderにファイル名を渡せる。
var sr = new StreamReader("file.txt");
ところが、.NET CoreにおいてはStreamReaderのコンストラクタにstringがないため、この方法は使えない。そのため、以下のようにする必要がある。
var sr = new StreamReader(new FileStream("file.txt", FileMode.Open));
log4netの使い方
通常、log4netを使用する場合、AssemblyInfo.csやアプリケーションの.configファイルに設定等を含める必要がある。しかし、AssemblyInfo.csは.NET Coreには含まれないため、別の方法を使用する必要がある。
具体的には……。
XmlDocument log4netConfig = new XmlDocument(); using (StreamReader reader = new StreamReader(new FileStream("log4net.config", FileMode.Open, FileAccess.Read))) { log4netConfig.Load(reader); } ILoggerRepository rep = log4net.LogManager.CreateRepository(Assembly.GetEntryAssembly(), typeof(log4net.Repository.Hierarchy.Hierarchy)); XmlConfigurator.Configure(rep, log4netConfig["log4net"]);
この方法は.NET Frameworkでも使用できるので、共通にコードを使用する必要がある場合は上記の方法を使用するのが楽。