monitoring - programas - spyzie apk
Cómo monitorear un archivo de texto en tiempo real (23)
Para fines de depuración en un sistema algo cerrado, tengo que enviar el texto a un archivo.
¿Alguien sabe de una herramienta que se ejecuta en Windows (basada en la consola o no) que detecta cambios en un archivo y los emite en tiempo real?
+1 para BareTail. De hecho, uso BareTailPro , que proporciona filtrado en tiempo real en la cola con cadenas de búsqueda básicas o cadenas de búsqueda utilizando expresiones regulares.
Al usar Windows PowerShell , puede hacer lo siguiente:
Get-Content someFile.txt -wait
Aquí hay una utilidad que escribí para hacer exactamente eso:
Utiliza un FileSystemWatcher para buscar cambios en los archivos de registro dentro de las carpetas locales o recursos compartidos de red (no tiene que estar montado, solo proporciona la ruta UNC) y agrega el nuevo contenido a la consola.
en github: https://github.com/danbyrne84/multitail
http://www.danielbyrne.net/projects/multitail
Espero que esto ayude
El segundo "tail -f" en cygwin. Supongo que Tail for Win32 logrará lo mismo.
FileSystemWatcher funciona de maravilla, aunque hay que tener un poco de cuidado con la activación de eventos duplicados, primer enlace de Google , pero teniendo esto en cuenta puede producir excelentes resultados.
He utilizado FileSystemWatcher para la supervisión de archivos de texto para un componente que construí recientemente. Puede haber mejores opciones (nunca encontré nada en mi investigación limitada ) pero eso pareció hacer el truco muy bien :)
Mierda, mi mal, en realidad buscas una herramienta para hacerlo todo por ti ...
Bueno, si tienes mala suerte y quieres hacer tu propio;)
Hice un pequeño visor por mi cuenta:
La cola es la mejor respuesta hasta ahora.
Si no usas Windows, probablemente ya tengas cola.
Si usa Windows, puede obtener una gran cantidad de herramientas de línea de comandos de Unix desde aquí: http://unxutils.sourceforge.net/ - Descomprímalas y colóquelas en algún lugar de su RUTA.
Luego haga esto en el símbolo del sistema de la misma carpeta en la que se encuentra su archivo de registro:
tail -n 50 -f whatever.log
Esto le mostrará las últimas 50 líneas del archivo y se actualizará a medida que el archivo se actualice.
Puedes combinar grep con cola con excelentes resultados, algo como esto:
tail -n 50 -f whatever.log | Error grep
le da solo líneas con "Error" en ella
¡Buena suerte!
La respuesta tardía, aunque podría ser útil para alguien, LOGEXPERT parece ser una utilidad de cola interesante para Windows.
Me gustan las herramientas que realizarán más de una tarea, Notepad ++ es una gran sustitución de bloc de notas y tiene un complemento de Document Monitor (se instala con msi estándar) que funciona muy bien. También es portátil, por lo que puedes tenerlo en una memoria USB para usar en cualquier lugar.
Para una opción de línea de comando, PowerShell (que es realmente una nueva línea de comando) tiene una gran característica ya mencionada.
Get-Content someFile.txt -wait
Pero también puedes filtrar en la línea de comando usando una expresión regular
Get-Content web.log -wait | where { $_ -match "ERROR" }
Para completar la lista, aquí hay un enlace a los puertos GNU WIN32 de muchas herramientas útiles (entre ellas, la cola). gnuwin32.sourceforge.net/packages/coreutils.htm
Pruebe SMSTrace de Microsoft (ahora llamado CMTrace, y directamente disponible en el menú de inicio en algunas versiones de Windows)
Es una herramienta de interfaz gráfica de usuario brillante que supervisa las actualizaciones de cualquier archivo de texto en tiempo real, incluso si está bloqueado para escribir en otro archivo.
No se deje engañar por la descripción, es capaz de monitorear cualquier archivo, incluidos .txt, .log o .csv.
Su capacidad para controlar archivos bloqueados es extremadamente útil , y es una de las razones por las que brilla esta utilidad.
Una de las mejores características es la coloración de líneas. Si ve la palabra "ERROR", la línea se vuelve roja. Si ve la palabra "WARN", la línea se vuelve amarilla. Esto hace que los registros sean mucho más fáciles de seguir.
Puede usar FileSystemWatcher en System.Diagnostics.
Desde MSDN:
Vigilante de la clase pública {
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);
}
}
También puede seguir este enlace Observando la actividad de la carpeta en VB.NET
Sí, he usado tanto Tail for Win32 como tail en Cygwin. He encontrado que ambos son excelentes, aunque prefiero Cygwin un poco, ya que puedo rastrear archivos a través de Internet de manera eficiente sin fallas (en algunos casos, Tail for Win32 se ha colgado).
Básicamente, usaría cola en Cygwin y redirigiría la salida a un archivo en mi máquina local. Luego tendría este archivo abierto en Vim y lo volveré a cargar (: e) cuando sea necesario.
Snake Tail. Es una buena opción. http://snakenest.com/snaketail/
Solo un enchufe desvergonzado para seguir la respuesta, pero tengo una aplicación web gratuita llamada Sierra para metales utilizada para ver los archivos log4net. He puesto las opciones de actualización automática para que pueda darse actualizaciones casi en tiempo real sin tener que actualizar el navegador todo el tiempo.
Sorprendido, nadie ha mencionado Trace32 (o Trace64). Estas son excelentes utilidades de Microsoft que proporcionan una buena GUI y resaltan cualquier error, etc. También tiene filtrado y suena exactamente como lo que necesita.
Yo uso "tail -f" debajo de cygwin.
Yo uso BareTail para hacer esto en Windows. Es gratis y tiene algunas características agradables, como pestañas para rastrear múltiples archivos y resaltado configurable.
FileMon es una herramienta independiente y autónoma que puede detectar todo tipo de acceso a archivos. Puede filtrar cualquier no deseado. Sin embargo, no muestra los datos que realmente han cambiado.
@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
Una forma rápida de hacerlo.
- Cola para Win32
- Apache Chainsaw : utilizado esto con log4net logs , puede requerir que el archivo esté en un cierto formato