Jak monitorować plik tekstowy w czasie rzeczywistym [zamknięty]

Do celów debugowania w nieco zamkniętym systemie, muszę wypisać tekst do pliku.

Czy ktoś zna narzędzie działające w systemie windows (oparte na konsoli lub Nie), które wykrywa zmiany w pliku i wysyła je w czasie rzeczywistym?

Author: Community, 2008-08-20

23 answers

 35
Author: Jon Galloway,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 19:32:57

Lubię narzędzia, które wykonają więcej niż jedno zadanie, Notepad++ jest świetnym zamiennikiem notatnika i ma wtyczkę do monitora dokumentów (instaluje się ze standardowym msi), która działa świetnie. Jest również przenośny, dzięki czemu można go mieć na pendrive do użytku w dowolnym miejscu.

Dla opcji wiersza poleceń PowerShell (który jest naprawdę nowym wierszem poleceń) ma już wspomnianą świetną funkcję.

Get-Content someFile.txt -wait

Ale możesz także filtrować w wierszu poleceń używając wyrażenia regularnego

Get-Content web.log -wait | where { $_ -match "ERROR" }
 61
Author: Mike Schall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-02 14:12:08

Używam "tail-f" pod cygwinem.

 17
Author: CHitchcock,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 19:27:36

Używam BareTail do robienia tego na Windows. Jest darmowy i ma kilka fajnych funkcji, takich jak Zakładki do śledzenia wielu plików i konfigurowalne podświetlanie.

 14
Author: John Topley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 20:01:16

Podczas korzystania z Windows PowerShell możesz wykonać następujące czynności:

Get-Content someFile.txt -wait
 13
Author: Lars Truijens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 19:48:59

FileSystemWatcher działa przyjemnie, chociaż trzeba być trochę ostrożnym z odpalaniem duplikatów zdarzeń - 1. link z Google - ale mając to na uwadze może przynieść świetne rezultaty.

 6
Author: ZombieSheep,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 19:29:27

Ogon to jak na razie najlepsza odpowiedź.

Jeśli nie używasz Windows, prawdopodobnie masz już ogon.

Jeśli korzystasz z systemu Windows, możesz uzyskać całą masę uniksowych narzędzi wiersza poleceń tutaj: http://unxutils.sourceforge.net / - rozpakuj je i umieść gdzieś na swojej drodze.

Następnie wykonaj to w wierszu polecenia z tego samego folderu, w którym znajduje się Twój plik dziennika:

Tail - N 50-f whatever.log

To pokaże ci ostatnie 50 linii pliku i Aktualizuj w miarę aktualizacji pliku.

Można łączyć grepa z ogonem ze świetnymi efektami-coś takiego:

Tail - N 50-f whatever.błąd log | grep

Daje tylko wiersze z "błędem" w nim

Powodzenia!

 4
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 19:50:19

Późna odpowiedź, choć może być pomocna dla kogoś -- LOGEXPERT wydaje się być ciekawym narzędziem ogonowym Dla windows.

 4
Author: Ragav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-03 09:54:06

Użyłem FileSystemWatcher do monitorowania plików tekstowych dla komponentu, który niedawno zbudowałem. Mogą być lepsze opcje (nigdy nie znalazłem nic w moich limited badań), ale to wydawało się zrobić sztuczkę ładnie :)

Cholera, mój błąd, naprawdę szukasz narzędzia, które zrobi to wszystko za Ciebie..

No cóż, jeśli masz pecha i chcesz toczyć własne;)

 3
Author: Rob Cooper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 19:26:36

Ogon Węża. Jest to dobra opcja. http://snakenest.com/snaketail/

 2
Author: Erick Alves,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-05 13:55:08

Wypróbuj SMSTrace od Microsoft (teraz o nazwie CMTrace i bezpośrednio dostępne w menu Start w niektórych wersjach systemu Windows)

To genialne narzędzie GUI, które monitoruje aktualizacje dowolnego pliku tekstowego w czasie rzeczywistym, nawet jeśli jest zablokowany do zapisu przez inny plik.

Nie daj się zwieść opisowi, jest w stanie monitorować każdy plik, w tym .txt,log or .csv.

Jego zdolność do monitorowania zablokowanych plików jest niezwykle przydatna i jest jednym z powodów, dla których to narzędzie świeci.

Jedną z najładniejszych cech jest kolorowanie linii. Jeśli widzi słowo "błąd", linia staje się czerwona. Jeśli zobaczy słowo "WARN", linia stanie się żółta. Dzięki temu logi są o wiele łatwiejsze do śledzenia.

 2
Author: Contango,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-12 16:15:07

Yor może używać FileSystemWatcher w systemie.Diagnostyka.

Z MSDN:

Public class Watcher {

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);
}

}

Możesz również skorzystać z tego linku obserwując aktywność folderu w VB.NET

 1
Author: Nelson Miranda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 19:32:09

Po prostu bezwstydna wtyczka do śledzenia odpowiedzi, ale mam darmową aplikację internetową o nazwie Hacksaw służącą do przeglądania plików log4net. Wprowadziłem opcję automatycznego odświeżania, dzięki czemu można udostępniać aktualizacje w czasie zbliżonym do rzeczywistego bez konieczności ciągłego odświeżania przeglądarki.

 1
Author: Dillie-O,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 20:21:36

Tak użyłem zarówno Tail dla Win32 jak i tail Na Cygwinie. Uważam, że oba są doskonałe, chociaż wolę Cygwin nieco, ponieważ jestem w stanie ogoniąć pliki przez internet skutecznie bez awarii (Ogon dla Win32 rozbił się na mnie w niektórych przypadkach).

Więc w zasadzie, użyłbym tail Na Cygwin i przekierowałbym wyjście do pliku na mojej lokalnej maszynie. Chciałbym wtedy mieć ten plik otwarty w Vim i przeładować (: e) go, gdy jest to wymagane.

 1
Author: ryan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-24 18:10:17

+1 za BareTail. W rzeczywistości używam BareTailPro , który zapewnia filtrowanie w czasie rzeczywistym na ogonie za pomocą podstawowych ciągów wyszukiwania lub ciągów wyszukiwania za pomocą regex.

 1
Author: Rob Thomas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-24 18:48:16

Aby lista była kompletna oto link do portów GNU WIN32 wielu użytecznych narzędzi (wśród nich jest tail). GNUWin32 CoreUtils

 1
Author: mandrake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-07 13:29:36

Dziwi mnie, że nikt nie wspomniał o Trace32 (lub Trace64). Są to świetne (darmowe) narzędzia Microsoft, które dają ładny GUI i podkreślają wszelkie błędy itp. Ma również filtrowanie i brzmi dokładnie tak, jak potrzebujesz.

 1
Author: Simon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-22 11:28:56

FileMon jest wolnym samodzielnym narzędziem, które wykrywa wszelkiego rodzaju dostęp do plików. Możesz odfiltrować wszelkie niepożądane. Nie pokazuje jednak danych, które rzeczywiście się zmieniły.

 0
Author: Lars Truijens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 19:44:38

Drugi "ogon-f" w cygwinie. Zakładam, że ogon dla Win32 osiągnie to samo.

 0
Author: Owen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 19:45:48
 0
Author: Chasler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-24 16:14:26

Oto narzędzie, które napisałem, aby to zrobić:

Używa FileSystemWatcher do wyszukiwania zmian w plikach dziennika w lokalnych folderach lub udziałach sieciowych (nie trzeba montować, wystarczy podać ścieżkę UNC) i dodaje nową zawartość do konsoli.

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

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

Hope this helps

 0
Author: managedheap84,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-15 09:57:10
 0
Author: Peter Rader,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-22 06:42:19
@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

Sposób wiersza polecenia.

 0
Author: Chaitanya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-02 09:31:28