私たちは Apache Tomcat 7 を使用しており、Valve コンポーネントをセットアップしてアクセス ログを保存し、SnowPlowで処理できるようにしようとしています。
私たちが抱えている問題は、これらのログを堅牢にする方法です。例を挙げると、フィールドをタブで区切り、次のようにユーザー エージェント文字列を抽出できます。
pattern="%{yyyy-MM-dd}t	%{hh:mm:ss}t	%{User-Agent}i	"
問題は、Valve コンポーネントが (私が見る限り) エスケープしないことです%{User-Agent}i
。そのため、ユーザー エージェントの迷子のタブがデータを破損します (行は 3 つではなく 4 つのフィールドを含むように見えます)。
解決策に関しては、私が見逃したユーザーエージェントをエスケープする方法がない限り、いくつかの解決策を見ることができます:
- useragent 文字列に含まれる可能性が非常に低い、非常にあいまいなフィールド区切り記号 (またはフィールド区切り記号の組み合わせ) を使用します。Ctrl-A (HTML

?) を試しましたが、うまくいかなかったようです AccessLogValve
エスケープをサポートするか、タブをサニタイズするカスタムを作成します - おそらくこの投稿のサニタイズ Tomcat アクセス ログ エントリに似ています
これについてオンラインで他に何も見つからないことに少し戸惑いました-Tomcatアクセスログを解析する人はいませんか?
おすすめは何ですか?少し立ち往生しています...