質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.54%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

18212閲覧

C#でlog4netを使用してlog出力ができない

gari

総合スコア21

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2015/11/13 22:50

編集2015/11/14 10:07

log4netを使用して、log出力をしたいのですが、なぜかlogが出力されません

log4netでうまくログが出ない場合
こちらのサイトを参考にしたのですが、
設定ファイル読み込み処理
XmlConfigurator.Configure(New System.IO.FileInfo(logSettingFile))
をコマンドウィンドウで実行してみる。
をやると
コマンド "XmlConfigurator.Configure(New" は有効ではありません。
と出力されます

環境はwindows10
VisualStudio2013です

設定ファイルを貼っておきます
わかる方いたら教えてください
よろしくお願いします

Xml

1<configuration> 2 3 <configSections> 4 <section name="log4net" type=" log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> 5 </configSections> 6 7 <log4net> 8 <!-- ログ出力先の定義(infomation-log) --> 9 <appender name="InfoLogAppender" type="log4net.Appender.RollingFileAppender" > 10 11 <!-- 作成するログファイル --> 12 <param name="File" value="C:/Users/${USERNAME}/CHaserOnlinelog/info-" /> 13 <!-- 追加 --> 14 <param name="AppendToFile" value="true" /> 15 <!-- ファイル切り替えのタイミング --> 16 <param name="RollingStyle" value="Once" /> 17 <!-- ログファイル名の固定 --> 18 <param name="StaticLogFileName" value="false" /> 19 <!-- ファイルの日付部分の書式 --> 20 <param name="DatePattern" value='yyyyMMddHHmmss".log"' /> 21 22 <!-- ログの書式 --> 23 <layout type="log4net.Layout.PatternLayout"> 24 <conversionPattern value="[%date{yyyy MM dd HH:mm:ss}]%message%newline" /> 25 </layout> 26 </appender> 27 28 <!-- 出力の設定(errer-log) --> 29 <appender name="ErrerLogAppender" type="log4net.Appender.RollingFileAppender" > 30 <!-- 出力先と出力ファイルの先頭部分 --> 31 <param name="File" value="C:/Users/${USERNAME}/CHaserOnlinelog\errer-" /> 32 <!-- 追加書き込み --> 33 <param name="AppendToFile" value="true" /> 34 <!-- ファイル切り替えのタイミング --> 35 <param name="RollingStyle" value="Once" /> 36 <!-- ログファイル名を固定するか --> 37 <param name="StaticLogFileName" value="false" /> 38 <!-- ファイルの日付の書式 --> 39 <param name="DatePattern" value='yyyyMMddHHmmss".log"' /> 40 41 <!-- ログの書式 --> 42 <layout type="log4net.Layout.PatternLayout"> 43 <conversionPattern value="%date [%thread] [%-5level] %logger %file(%line) %class %method - %message%n" /> 44 </layout> 45 </appender> 46 47 <root> 48 <!-- ログのレベルを指定 --> 49 50 <!-- すべてのログレベルを出力 --> 51 <level value="ALL" /> 52 53 <!-- どのログ出力先を使用するか --> 54 <appender-ref ref="InfoLogAppender" /> 55 <appender-ref ref="ErrerLogAppender" /> 56 </root> 57 </log4net> 58</configuration>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

実行するのがコマンドウィンドウではなく、イミディエイトウィンドウです。
また、

XmlConfigurator.Configure(New System.IO.FileInfo(logSettingFile))

はVB.Netの場合ですので、C#の文法に変える必要があります。

C#

1XmlConfigurator.Configure(new System.IO.FileInfo(logSettingFile))

XmlConfiguratorが名前解決できない場合は先頭に

log4net.Config.

をつける必要があります。

投稿2015/11/16 01:35

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gari

2015/11/16 04:25

うまく実行できません、 logSettingFileの部分は何を入れればいいのでしょうか? log4netの設定ファイルを指定してもうまく実行できませんでした
退会済みユーザー

退会済みユーザー

2015/11/16 04:41 編集

logSettingFileはlog4netの設定ファイルへのパスであってます。 実際にコマンドを試した際のエラーメッセージを提示して頂けますか?
退会済みユーザー

退会済みユーザー

2015/11/16 06:22

gariさんの張られた設定ファイルから"File"の設定値を変更(私の端末では訳あってCドライブが存在しないため)したものを試したところ、おそらく意図したファイル名ではありませんがログは出力されますね。 設定ファイルの"File"を単純なパス(C:/log/info.log)などにしても出力されませんか?
gari

2015/11/16 07:08

log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(log4net.xml)) 型または名前空間の名前 'xml' は名前空間 'log4net' に存在しません。 というエラーです
退会済みユーザー

退会済みユーザー

2015/11/16 07:21 編集

log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo("log4net.xml")) イミディエイトウィンドウもコードと同じなのでファイルパスは"で囲んでください。
gari

2015/11/16 07:40 編集

おお!コマンドを実行できました! Count=0とだけ表示されたのですが、これは何かのエラーなのですか? 何もわからずお手数をお掛けして申し訳ありません
退会済みユーザー

退会済みユーザー

2015/11/16 07:48

Count=0であれば構文上エラーが検出されていません。 (ただし、存在しないファイルを指定した場合も"Count=0"と出力されます。) ですので、設定した値がおかしいか、ログ出力のコードが間違っているか、どこか勘違いしているかだと思います。 個人的には設定ファイルの"File"の値か、ログ出力のコードが怪しいと思います。 (提示いただいた設定ファイルの"File"の値を変更するとログは出力されたため)
gari

2015/11/16 07:54 編集

やはり出力先がおかしいですかね、 理想としてはマイドキュメントの中にフォルダを作成して その中にlogファイルを入れていきたいです ソースコード側で出力先を動的に変更できそうなのでやってみたいと思います XMLコード上でログインユーザー名を取得する方法とかあったりしますか?
退会済みユーザー

退会済みユーザー

2015/11/16 08:04

以下のページが参考になると思います。 http://kazenetu.exblog.jp/19177785/ typeに"log4net.Util.PatternString"を指定し、 valueに"%envFolderPath{MyDocuments}\\CHaserOnlinelog\\.XXX.log"
gari

2015/11/16 08:44

ありがとうございます!! 大変参考になりました! ただ、ファイル名が正しくなく、"info-"というファイル名になってしまいます。 fileのところにyyyyMMddHHと記述してもいいのでしょうか?
退会済みユーザー

退会済みユーザー

2015/11/16 08:56

時間まで指定する方法は分かりませんが日付ごとに作成する場合は RollingStyleの値を"date"にしてみてください。
gari

2015/11/16 09:10

解決しました!! いろいろお手数をお掛けして申し訳ありませんでした! お付き合いいただきありがとうございます! <File type="log4net.Util.PatternString" value="%envFolderPath{MyDocuments}\\CHaserOnlinelog\info_%date{yyyyMMddHHmmss}.log" /> これで info_20151116181049.log というファイル名が作成できました! 本当に有難うございます!
guest

0

直接の回答ではないのですが・・・まずは念のための確認から・・・

コマンドウィンドウに入力した文字列は
(XmlConfigurator.Configure(New System.IO.FileInfo(logSettingFile)))
ですか? 今確認したいコマンドは
XmlConfigurator.Configure(New System.IO.FileInfo(logSettingFile))
ですよね?

エラーメッセージの表示のされ方が気になりました。

コマンド "(XmlConfigurator.Configure(New" は有効ではありません。

投稿2015/11/14 01:16

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gari

2015/11/14 10:02 編集

後者の”XmlConfigurator.Configure(New System.IO.FileInfo(logSettingFile))" を入力しました、 わかりにくくてすいません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.54%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。