0

get-content .\log.log -Waitしたがって、コンソール.Netアプリケーションでは、Linuxコマンドに似た(powershellコマンド)を使用してすべてのlog4netイベントストリームを監視でき、内部でtailFileSystemWatcherを使用すると想定しています。

何らかの理由で、私がasp.net Mvcアプリケーションを持っているときはいつでも、これは機能しません。明確にするために、ログファイルは書き込まれます。get-content .\log.log何度でも最新の結果を取得できますが、パラメーター-waitを使用すると、変更がスクロールして過ぎていくのがわかりません。

誰かがここで何が起こっているのかについて何か洞察を持っていますか?

4

1 に答える 1

1

更新:私の場合に有効な解決策を見つけましたが、これがあなたを助けるかどうかはわかりません。

PowerShellを使用する代わりに、win-bashをダウンロードし、今ではこの使い慣れたUnixコマンドを使用しています。これは私にとって完璧に機能します。

tail -f access.log

私は.Netプログラミングにあまり詳しくありません。PowerShellの代わりにwin-bashプロジェクトのbash.exeを使用することは、あなたの場合に有効なソリューションでしょうか?


PowerShellでApacheアクセスログを「テール」しようとすると、同様の問題が発生します。

Get-Content .\access.log -Wait

Apache HTTPサーバーが実行されているとき、acccess.logへのハンドルが開いていて、-Waitが機能しないことに気付きました。HTTPサーバーを停止するとハンドルが解放され、テキストエディターを使用してaccess.logに手動で変更を加えると、PowerShellウィンドウにコンソールの変更がすぐに反映されます。

したがって、他のプログラムがファイルに対して開いているハンドルを持っている場合、変更はコンソールに反映されないと思います。残念ながら、私はこれまでこの問題を回避する方法を見つけていません。

于 2012-08-16T17:07:59.093 に答える