C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: Log4Netでのログ出力ができない


(過去ログ 113 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■66632 / inTopicNo.1)  Log4Netでのログ出力ができない
  
□投稿者/ karankoron (1回)-(2013/05/12(Sun) 20:39:43)

分類:[VB.NET/VB2005 以降] 

 Log4Netの質問が掲載されていましたので、現在抱えている問題につき質問致します。

 環境は、Windows7 Proffesional、VisualStudio2010 ExpressでVB.Netにてプログラムを作成しています。
 Log4Netのバージョンは、1.2.11.0 です。

 Log4NetをVBのコンソールアプリケーションで使用し、この場合はログ出力ファイルが作成されログ情報を得ることができたのですが、フォームアプリケーションで同じapp.configを使って出力させようとすると、指定した出力フォルダは作成されず、当然ログファイルも作られません。出力用フォルダを作って実行してみたのですが、やはりダメでした。
 実行時にエラー等は発生しておらず、プログラムの実行及び出力は正常にできています。

 app.configは以下の通りです。問題点をご指摘頂ければ幸いです。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

<configSections>
<section name="log4net" type=" log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>

<log4net>
<!-- ログ出力先の定義 -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">

<!-- 作成するログファイル -->
<param name="File" value=".\log\logfile"/>

<!-- 追加 -->
<param name="AppendToFile" value="true"/>

<!-- 日付とサイズごとにファイルを作成することを指定 -->
<param name="RollingStyle" value="Composite"/>
<param name="MaximumFileSize" value="50MB"/>
<maxSizeRollBackups value="-1"/>

<!-- ログ・ファイル名が固定ではないので "false"を指定 -->
<param name="StaticLogFileName" value="false"/>
<!-- ファイル名の日付部分 -->
<param name="DatePattern" value="&quot;.&quot;yyyyMMdd&quot;_log.txt&quot;"/>

<!-- ログの書式 -->
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %C %M %L - %m%n"/>
</layout>
</appender>

<root>
<!-- ログのレベルを指定 ALL/DEBUG/INFO/WARN/ERROR/FATAL -->
<level value="INFO"/>

<!-- どのログ出力先を使用するか -->
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

<!-- (自動生成された部分) -->
<system.diagnostics>
<sources>
<!-- このセクションでは、My.Application.Log のログ構成を定義します。 -->
<source name="DefaultSource" switchName="DefaultSwitch">
<listeners>
<add name="FileLog"/>
<!-- アプリケーション イベント ログに書き込むには、以下のセクションのコメントを解除します -->
<!--<add name="EventLog"/>-->
</listeners>
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information"/>
</switches>
<sharedListeners>
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
<!-- アプリケーション イベント ログに書き込むには、以下のセクションのコメントを解除して、APPLICATION_NAME をアプリケーション名に置き換えます -->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
</system.diagnostics>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>

 よろしくお願い申します。
引用返信 編集キー/
■66641 / inTopicNo.2)  Re[1]: Log4Netでのログ出力ができない
□投稿者/ ジョージア (1回)-(2013/05/13(Mon) 12:02:28)
ログファイルの場所が".\log\logfile"となっていますが、これは実行ファイルのある場所(app.configのある場所)から見た相対パスでしょうか。
ちなみに、この場所はProgram Files配下などといった、管理者権限が必要な場所ではないですよね?
引用返信 編集キー/
■66678 / inTopicNo.3)  Re[2]: Log4Netでのログ出力ができない
□投稿者/ karankoron (2回)-(2013/05/15(Wed) 21:45:42)
No66641 (ジョージア さん) に返信

ジョージア様

ありがとうございます。

> ログファイルの場所が".\log\logfile"となっていますが、これは実行ファイルのある場所(app.configのある場所)から見た相対パスでしょうか。

 実行ファイルのある場所からの相対パスです。ただ、app.configはプロジェクトフォルダにあり、実行ファイルはプロジェクトフォルダの下の、bin\releaseの下にあります。従って、bin\release\log\logfileになります。

> ちなみに、この場所はProgram Files配下などといった、管理者権限が必要な場所ではないですよね?

 コンソールアプリケーションで実行した場合には".\log\logfile"が作成され出力もされていたのでそういう問題はないと思っていますが...
 今回の状況は、Moduleレベルで記述したプログラムをFormアプリケーションのForm1からCallする形に変更したところ、Logフォルダがつくられなくなったというものです。

 よろしくお願い申します。
引用返信 編集キー/
■66679 / inTopicNo.4)  Re[3]: Log4Netでのログ出力ができない
□投稿者/ ジョージア (2回)-(2013/05/16(Thu) 09:51:45)
「プロジェクトフォルダ」や「bin\release」などとあるので、VS2010でビルドした場所で実行していると思いますが、
実行ファイル(.exe)のダブルクリック等で直接実行していますか?それともVS2010のIDE上で実行していますか?
もし後者の場合、debugの方が動いていて、「bin\debug\log\logfile」が出来ている、なんてことはないでしょうか?
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -