Question

À des fins de débogage dans un certain système fermé, j'ai du texte de sortie pour un fichier.

Personne ne sait d'un outil qui fonctionne sur windows (console ou pas) qui détecte les modifications apportées à un fichier et sorties en temps réel?

Était-ce utile?

La solution

Autres conseils

J'aime les outils qui permettront de réaliser plus d'une tâche, Notepad++ est un grand bloc-notes de remplacement et dispose d'un Document de Surveiller le plugin s'installe avec msi standard) qui fonctionne très bien.Il est aussi portable de sorte que vous pouvez avoir sur une clé usb pour l'utiliser n'importe où.

Pour une option de ligne de commande PowerShell (qui est vraiment une nouvelle ligne de commande) a une grande fonctionnalité déjà mentionné.

Get-Content someFile.txt -wait

Mais vous pouvez aussi filtrer sur la ligne de commande à l'aide d'une expression régulière

Get-Content web.log -wait | where { $_ -match "ERROR" }

J'utilise "tail-f" sous cygwin.

J'utilise BareTail pour ce faire, sur Windows.Il est gratuit et dispose de quelques fonctionnalités intéressantes, comme des onglets pour les résidus de fichiers multiples et configurable en évidence.

Lors de l'utilisation de Windows PowerShell vous pouvez effectuer les opérations suivantes:

Get-Content someFile.txt -wait

FileSystemWatcher fonctionne un régal, bien que vous ne devez être un peu prudent à propos de dupliquer les événements de tir - 1er lien de Google - mais gardant cela à l'esprit, peuvent produire de grands résultats.

Queue est la meilleure réponse à ce jour.

Si vous n'utilisez pas Windows, vous avez probablement déjà la queue.

Si vous utilisez Windows, vous pouvez obtenir toute une série d'Unix outils de ligne de commande à partir d'ici: http://unxutils.sourceforge.net/ - Décompressez et de les mettre quelque part dans votre PATH.

Puis il suffit de faire ceci à l'invite de commande à partir du même dossier de votre fichier de log est:

tail-n 50 -f que ce soit.journal

Cela va vous montrer les 50 dernières lignes du fichier et mettre à jour le fichier des mises à jour.

Vous pouvez combiner grep avec la queue avec d'excellents résultats - quelque chose comme cela:

tail-n 50 -f que ce soit.log | grep Erreur

vous donne simplement des lignes avec "Erreur" en elle

Bonne chance!

Réponse tardive, mais peut être utile pour quelqu'un -- LOGEXPERT nous semble intéressant de la queue de l'utilitaire pour windows.

J'ai utilisé FileSystemWatcher pour le suivi des fichiers de texte pour un composant, j'ai récemment construit.Il y a peut être de meilleures options (je n'ai jamais rien trouvé dans mon limitée de recherche), mais qui semblait faire le tour bien :)

Merde, mon mal, vous êtes après un outil pour le faire pour vous..

Bien si vous êtes malchanceux et que vous souhaitez restaurer votre propre ;)

Essayez SMSTrace à partir de Microsoft (maintenant appelé CMTrace, et directement disponible dans le Menu Démarrer sur certaines versions de Windows)

Ses un brillant outil graphique qui surveille les mises à jour de n'importe quel fichier texte en temps réel, même si son verrouillés pour l'écriture par un autre fichier.

Ne vous laissez pas berner par la description, elle est capable de surveillance de n'importe quel fichier, y compris .txt, .ou du journal .csv.

Sa capacité à surveiller les fichiers verrouillés est extrêmement utile, et est l'une des raisons pour lesquelles cet utilitaire brille.

L'une des plus belles caractéristiques de est ligne coloriage.Si elle voit le mot "ERREUR", la ligne devient rouge.Si elle voit le mot "AVERTISSEMENT", la ligne devient jaune.Cela rend les journaux beaucoup plus facile à suivre.

Queue De Serpent.C'est une bonne option.http://snakenest.com/snaketail/

Yor pouvez utiliser le FileSystemWatcher dans le Système.Diagnostics.

À partir de 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);
}

}

Vous pouvez également suivre ce lien En regardant le Dossier de l'Activité dans VB.NET

Juste un shameless plug à queue sur la réponse, mais j'ai un libre basé sur le web application appelée Scie à métaux utilisé pour l'affichage de log4net fichiers.Je les ai mis dans une auto options d'actualisation de sorte que vous pouvez donner vous-même en temps quasi-réel des mises à jour sans avoir à actualiser le navigateur de tous les temps.

Ouais, je l'ai utilisé à la fois la Queue pour Win32 et la queue sur Cygwin.Je l'ai trouvé excellent, bien que je préfère Cygwin légèrement que je suis capable de queue de fichiers sur l'internet de manière efficace, sans se bloque (la Queue pour Win32 s'est écrasé sur moi dans certains cas).

Donc, fondamentalement, je voudrais utiliser la queue sur Cygwin et rediriger la sortie vers un fichier sur ma machine locale.Je ne puis ont de ce fichier à ouvrir dans Vim et de le recharger (:e) quand il le faut.

+1 pour BareTail.J'utilise en fait BareTailPro, qui fournit un filtrage en temps réel sur la queue de base des chaînes de recherche ou de recherche, les chaînes à l'aide de regex.

Pour faire la liste complète, voici un lien vers la licence GNU WIN32 ports de nombreux outils utiles (parmi eux, la queue).GNUWin32 CoreUtils

Surpris personne n'a mentionné Trace32 (ou Trace64).Ce sont de grands (gratuit) Microsoft utilitaires qui donnent une belle interface et de mettre en évidence les erreurs, etc.Il dispose également de filtrage et de sons, comme exactement ce dont vous avez besoin.

Voici un utilitaire que j'ai écrit pour faire juste cela:

Il utilise un FileSystemWatcher de surveiller les changements dans les fichiers journaux dans les dossiers locaux ou des partages réseau (ne pas avoir à être monté, il suffit de fournir le chemin d'accès UNC) et ajoute le nouveau contenu de la console.

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

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

Espérons que cette aide

FileMon est un gratuit autonome outil qui permet de détecter tous les types d'accès au fichier.Vous pouvez filtrer les indésirables.Il ne vous montre pas les données qu'il a effectivement changé.

Je seconde "tail-f" dans cygwin.Je suppose que la Queue pour Win32 permettra d'accomplir la même chose.

J'ai fait une petite visionneuse par mon propre:

https://github.com/enexusde/Delphi/wiki/TinyLog

@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

Une invite de commande moyen de le faire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top