- PR -

イベント情報をテキストに

投稿者投稿内容
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-03-06 14:47
ん・・・リスナーの生成自体も自身で処理するようにしたのですね。

でしたら、リスナーを登録しておかなければなりませんので
My.Application.Log.TraceSource.Listeners.Add(instance)
の様に、リスナーコレクションに追加しておきます。

ログの出力には、MSDNに記述されているように
My.Application.Log.WriteEntryメソッドを使用してください。
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-03-06 15:25
くまっちさん、すいません。

Dim instance As New FileLogTraceListener

instance.BaseFileName = "Err"
instance.Location = LogFileLocation.Custom
instance.CustomLocation = "D:\Err\"

My.Application.Log.TraceSource.Listeners.Add(instance)

My.Application.Log.WriteEntry("Err")

としましたが、規定のフォルダに作成されてしまいます。


これでは、ダメなのでしょうか?
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-03-06 15:55
規定のフォルダというのは、どこの値を差していますか?
app.configに記述したcustomLocation=の値でしょうか?

そうであるならば、既にリスナーは生成されているので
ご自身でリスナーを生成する必要はありません。

CType(My.Application.Log.TraceSource.Listeners("FileLogListener"), _
Logging.FileLogTraceListener).CustomLocation = "c:\\myLog\\"
などの様に、自動生成されたリスナーの設定を変更してください。

なびさんの提示された
Dim instance As New FileLogTraceListener
は、app.configとは別に、新たにリスナーを自身で作成しています。
リスナーを自らで用意する場合、app.configのリスナー記述は不要となります。
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-03-06 16:11
くまっちさん、すいません。

規定のフォルダは、C:Document and Setting..です

Dim instance As New FileLogTraceListener

instance.BaseFileName = "Err"
instance.Location = LogFileLocation.Custom
instance.CustomLocation = "D:\Err\"

My.Application.Log.TraceSource.Listeners.Add(instance)

をコメントにして
CType(My.Application.Log.TraceSource.Listeners("FileLogListener"), _
Logging.FileLogTraceListener).CustomLocation = "c:\\myLog\\"

My.Application.Log.WriteEntry("Err")
としましたが
「オブジェクト参照がオブジェクトインスタンスに設定されていません」
のエラーになってしまいます。

手順
1.app.configの追加
2.VBのコード追加(上記)

で行いましたが、どこが間違っているのでしょうか?

何度もすいません。


くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-03-06 17:18
最小限の構成を提示いたします。

以下、app.configの内容
コード:
<configuration>
    <system.diagnostics>
        <sources>
            <source name="DefaultSource" switchValue="All">
                <listeners>
                  <remove name="Default" />
                  <add name="FileLogListener" initializeData="FileLogListenerWriter"
                    type="Microsoft.VisualBasic.Logging.FileLogTraceListener,
                    Microsoft.VisualBasic, Version=8.0.0.0,
                    Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                    location="Custom" />
                </listeners>
            </source>
        </sources>
    </system.diagnostics>
</configuration>


以下、VBコードにて。
コード:
'' 出力先フォルダの指定
CType(My.Application.Log.TraceSource.Listeners("FileLogListener"), _ 
  Microsoft.VisualBasic.Logging.FileLogTraceListener).CustomLocation = "c:¥myLog"
'' ログ出力
My.Application.Log.WriteEntry("サンプルログ文字列", TraceEventType.Verbose)


重要な箇所は太字で示して在ります。
*nameはconfigとコードで一致するようにしてください。
*locationはcustomとしておいてください。

以上のコードで、ログ出力可能(My.Application.Log.WriteEntryメソッドで出力可)になります。

先に提示した解説ページやMSDNにてFileLogTraceListenerクラスのリファレンスを熟読する事で
各設定値がどのような意味を持っているのか等、理解できるかと思います。
なび
ぬし
会議室デビュー日: 2007/08/27
投稿数: 273
投稿日時: 2008-03-07 09:26
くまっちさん、今回は何度もありがとうございます。

最後まで大変丁寧な回答ありがとうございました。


スキルアップ/キャリアアップ(JOB@IT)