0

例外が適切に処理されなかったvb.netアプリケーションで作業しているとき。大変な苦痛でした。そのため、ホストアプリケーションのグローバルな場所に1行のコード/最小限のコードを記述せずに、アプリケーションのすべてのエラーをログに記録するライブラリやサービス、またはある種のexeを生成できる場合は、アイデアが浮かび上がりました。私はそれが少しクレイジーに聞こえることを知っていますが、Windowsイベントロガーは同じことをします。だから私も同じことを考えました。もっとはっきりさせておきましょう。アプリケーションabc.exeがあり、trycatchが1つもないとします。そのアプリを使用している間、私は多くのバグに直面しています。ここで、アプリケーションソースを掘り下げる代わりに、マネージドとcomの両方を含む、そのアプリのすべての未処理の例外を実行してログに記録する別のアプリをコーディングしたいと思います。

ですから、教祖は私を助けてくれるように頼まれています。ApplicationDomainが便利だと思います。私はMSDNブログでリックなどの名前に出くわしましたが、もうつかみませんでした。したがって、簡単なソースまたはコードの一部が役立ちます。回答とともにサンプルコードを追加してください。

それは大きな助けになるでしょう。

まとめ

インジェクターのアセンブリが配置されている任意のアプリケーションに自分自身を注入するアプリケーションが必要です。つまり、アプリケーションD:\ xyz \ myapp \ abc.exeがある場合、アプリケーションをexeとして持っていた場合、それをmyappフォルダー内に配置すると、abc.exeの実行後、ユニバーサルエラーロガーアプリケーションが動作を開始します。現在のアプリケーションドメインに自分自身を注入します。また、サービスとして作成する場合、マルチスレッド化されるかどうかも教えてください。

4

2 に答える 2

1

私が正しく理解していれば、エラー処理が悪いアプリケーションのソースがあり、それを修正して再コンパイルすることができます。

その場合は、 AppDomain.UnhandledExceptionイベントを確認することをお勧めします。MSDNからの引用:このイベントは、キャッチされなかった例外の通知を提供します。これにより、システムのデフォルトハンドラーがユーザーに例外を報告してアプリケーションを終了する前に、アプリケーションが例外に関する情報をログに記録できるようになります。

リンクにアクセスすると、追加する必要のあるコードのサンプルがあります。これは、アプリ内の1つのファイルにすべて入れることができる数行のコードなので、簡単に追加できるはずです。

于 2010-09-04T20:35:35.863 に答える
0

このMSDNページ方法:Visual Basicで例外をログに記録すると、必要なものが正確に説明されます。要約すると、次のように説明されています。

  • Visual BasicMy.Application.Logを使用して、.NETの組み込みトレースリスナーを使用して例外をログに記録する方法。
  • UnhandledExceptionVBアプリケーションでFormsApplicationイベントを登録する方法。
  • VisualBasicを登録FileLogTraceListenerしてファイル"[User]\ Application Data \ [CompanyName] \ [ProductName] \ [ProductVersion][ApplicationName].log"に記録する方法。

VBを登録するアプリケーションファイル構成の例を次に示しますFileLogTraceListener

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.diagnostics>
        <sources>
            <source name="DefaultSource" switchName="DefaultSwitch">
                <listeners>
                    <add name="FileLog"/>
                </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" />
        </sharedListeners>
    </system.diagnostics>
</configuration>
于 2010-09-05T10:47:57.020 に答える