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?
23 answers
- Tail for Win32
- Apache Chainsaw - używany z log4net logs , może wymagać, aby plik był w określonym formacie
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" }
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.
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.
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
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.
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!
Późna odpowiedź, choć może być pomocna dla kogoś -- LOGEXPERT wydaje się być ciekawym narzędziem ogonowym Dla windows.
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;)
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/
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.
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
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.
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.
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.
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
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.
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.
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.
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
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
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
Zrobiłem sobie małego widza:
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.
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