74

やや閉鎖的なシステムでのデバッグのために、テキストをファイルに出力する必要があります。

ファイルへの変更を検出してリアルタイムで出力する、Windows (コンソールベースかどうかに関係なく) で実行されるツールを知っている人はいますか?

4

23 に答える 23

75

私は複数のタスクを実行するツールが好きです。メモ帳++はメモ帳の優れた代替品であり、ドキュメントモニタープラグイン(標準のmsiでインストール)があり、うまく機能します。また、ポータブルなので、どこでも使用できるようにサムドライブに入れることができます。

コマンドラインオプションの場合、PowerShell(実際には新しいコマンドライン)には、すでに説明した優れた機能があります。

Get-Content someFile.txt -wait

ただし、正規表現を使用してコマンドラインでフィルタリングすることもできます

Get-Content web.log -wait | where { $_ -match "ERROR" }
于 2008-09-02T14:12:08.937 に答える
36
于 2008-08-20T19:26:25.013 に答える
18

cygwin では "tail -f" を使用します。

于 2008-08-20T19:27:36.553 に答える
18

Windows PowerShellを使用すると、次のことができます。

Get-Content someFile.txt -wait
于 2008-08-20T19:48:59.810 に答える
16

Windows でこれを行うためにBareTailを使用します。これは無料で、複数のファイルをテーリングするためのタブや設定可能な強調表示など、いくつかの優れた機能を備えています。

于 2008-08-20T20:01:16.223 に答える
7

テールはこれまでのところ最良の答えです。

Windows を使用していない場合は、既にテールを持っている可能性があります。

Windows を使用している場合は、ここから多数の Unix コマンド ライン ツールを入手できます。それらを解凍し、PATH のどこかに配置します。

次に、ログ ファイルと同じフォルダーからコマンド プロンプトでこれを実行します。

tail -n 50 -f whatever.log

これにより、ファイルの最後の 50 行が表示され、ファイルが更新されると更新されます。

次のように、grep と tail を組み合わせて素晴らしい結果を得ることができます。

tail -n 50 -f whatever.log | grep Error

「エラー」を含む行だけが表示されます。

幸運を!

于 2008-08-20T19:50:19.620 に答える
6

FileSystemWatcher はうまく機能しますが、重複したイベントの発生には少し注意する必要があります ( Google からの最初のリンク)

于 2008-08-20T19:29:27.143 に答える
4

Microsoft の SMSTrace を試してみてください (現在は CMTrace と呼ばれ、一部のバージョンの Windows では [スタート] メニューから直接利用できます)。

別のファイルによって書き込みのためにロックされている場合でも、テキスト ファイルの更新をリアルタイムで監視する優れた GUI ツールです。

説明に惑わされないでください。.txt、.log、.csv など、あらゆるファイルを監視できます。

ロックされたファイルを監視する機能は非常に便利であり、このユーティリティが優れている理由の 1 つです。

最も優れた機能の 1 つは、線の色付けです。「ERROR」という単語が表示されると、線が赤くなります。「WARN」という単語が表示されると、線が黄色になります。これにより、ログを追跡しやすくなります。

于 2013-09-19T07:25:53.137 に答える
3

最近ビルドしたコンポーネントのテキスト ファイルを監視するためにFileSystemWatcherを使用しました。より良いオプションがあるかもしれません(限られた研究では何も見つかりませんでした)が、それはうまくいくように見えました:)

くそ、悪い、あなたは実際にあなたのためにそれをすべて行うためのツールを求めています..

もしあなたが不運に見舞われて、自分で転がしたいのなら ;)

于 2008-08-20T19:26:36.183 に答える
2

スネークテール。これは良いオプションです。 http://snakenest.com/snaketail/

于 2015-05-05T13:55:08.413 に答える
1

恥知らずなプラグインで答えを導き出すだけですが、log4net ファイルの表示に使用するHacksawという無料の Web ベースのアプリがあります。自動更新オプションを追加したので、ブラウザを常に更新しなくてもほぼリアルタイムで更新できます。

于 2008-08-20T20:21:36.470 に答える
1

System.Diagnostics で FileSystemWatcher を使用できます。

MSDN から:

パブリック クラス ウォッチャー {

public static void Main()
{
Run();

}

[PermissionSet(SecurityAction.Demand, Name="FullTrust")]
public static void Run()
{
    string[] args = System.Environment.GetCommandLineArgs();

    // If a directory is not specified, exit program.
    if(args.Length != 2)
    {
        // Display the proper way to call the program.
        Console.WriteLine("Usage: Watcher.exe (directory)");
        return;
    }

    // Create a new FileSystemWatcher and set its properties.
    FileSystemWatcher watcher = new FileSystemWatcher();
    watcher.Path = args[1];
    /* Watch for changes in LastAccess and LastWrite times, and 
       the renaming of files or directories. */
    watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite 
       | NotifyFilters.FileName | NotifyFilters.DirectoryName;
    // Only watch text files.
    watcher.Filter = "*.txt";

    // Add event handlers.
    watcher.Changed += new FileSystemEventHandler(OnChanged);
    watcher.Created += new FileSystemEventHandler(OnChanged);
    watcher.Deleted += new FileSystemEventHandler(OnChanged);
    watcher.Renamed += new RenamedEventHandler(OnRenamed);

    // Begin watching.
    watcher.EnableRaisingEvents = true;

    // Wait for the user to quit the program.
    Console.WriteLine("Press \'q\' to quit the sample.");
    while(Console.Read()!='q');
}

// Define the event handlers.
private static void OnChanged(object source, FileSystemEventArgs e)
{
    // Specify what is done when a file is changed, created, or deleted.
   Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
}

private static void OnRenamed(object source, RenamedEventArgs e)
{
    // Specify what is done when a file is renamed.
    Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}

}

このリンクをたどることもできますVB.NETでフォルダのアクティビティを監視する

于 2008-08-20T19:32:09.930 に答える
1

これを行うために私が書いたユーティリティを次に示します。

FileSystemWatcher を使用して、ローカル フォルダーまたはネットワーク共有内のログ ファイルの変更を探し (マウントする必要はなく、UNC パスを指定するだけです)、新しいコンテンツをコンソールに追加します。

github: https://github.com/danbyrne84/multitail

http://www.danielbyrne.net/projects/multitail

お役に立てれば

于 2014-04-15T09:57:10.730 に答える
1

誰も Trace32 (または Trace64) について言及していないことに驚きました。これらは優れた (無料の) Microsoft ユーティリティであり、優れた GUI を提供し、エラーなどを強調表示します。また、フィルタリング機能があり、必要なものとまったく同じように聞こえます。

于 2012-05-22T09:13:27.557 に答える
1

ええ、Win32 の Tail と Cygwin の tail の両方を使用しました。どちらも優れていることがわかりましたが、クラッシュせずにインターネット経由で効率的にファイルを追跡できるため、Cygwin の方が少し好きです (Win32 のテールがクラッシュすることもありました)。

したがって、基本的には、Cygwin で tail を使用し、出力をローカル マシンのファイルにリダイレクトします。次に、このファイルを Vim で開き、必要に応じてリロード (:e) します。

于 2008-08-24T18:10:17.907 に答える
1
@echo off

set LoggingFile=C:\foo.txt
set lineNr=0

:while1
for /f "usebackq delims=" %%i in (`more +%lineNr% %LoggingFile%`) DO (
    echo %%i
    set /a lineNr+=1
    REM Have an appropriate stop condition here by checking i
)
goto :while1

それを行うコマンドプロンプトの方法。

于 2015-12-02T09:31:28.800 に答える
1

BareTail の場合は +1。私は実際にBareTailProを使用しています。これは、基本的な検索文字列または正規表現を使用した検索文字列でテールにリアルタイム フィルタリングを提供します。

于 2008-08-24T18:48:16.630 に答える
1

リストを完成させるために、多くの便利なツールの GNU WIN32 ポートへのリンクがあります (その中には tail があります)。 GNUWin32 CoreUtils

于 2009-07-07T13:29:36.007 に答える
0

FileMonは、あらゆる種類のファイル アクセスを検出できる無料のスタンドアロン ツールです。不要なものをフィルタリングできます。ただし、実際に変更されたデータは表示されません。

于 2008-08-20T19:44:38.777 に答える
0

cygwin で 2 番目に「tail -f」を実行します。Tail for Win32 でも同じことができると思います。

于 2008-08-20T19:45:48.727 に答える
0

Win32 のテール

于 2008-09-24T16:14:26.263 に答える