Используйте Out-gridview для отображения журнала
Я довольно новичок в сценариях powershell. Я хотел бы отобразить файл журнала в виде сетки, используя внешний вид сетки.
Допустим, у меня есть очень простой скрипт, как
$logFile = "logs\myCoolLogFile.log";
gc -wait $logFile | Out-GridView -Wait
Это отображает каждую строку в одной ячейке. Мой журнал формируется так:
LEVEL TIMESTAMP LOGGERNAME [THREAD]: MESSAGE
Каждая запись разделена одним или несколькими пробелами (но я могу легко изменить ее, чтобы разделить одним символом табуляции, если это было более подходящим). Сообщение может содержать дополнительные пробелы. Предыдущие записи никогда не содержат пробелов.
Я хотел бы иметь разные столбцы для LEVEL
, TIMESTAMP
и т.д. Но я не уверен, как этого добиться. Любая помощь приветствуется.
Редактировать: по запросу @jisaak, вот пример моего журнала с многострочным сообщением:
WARN 09:53:49.938 n.s.e.CacheManager [StartStop-Thread] Creating a new instance of CacheManager using the diskStorePath "C:\temp" which is already used by an existing CacheManager.
The source of the configuration was net.sf.ehcache.config.generator.ConfigurationSource$DefaultConfigurationSource@48666bf4.
The diskStore path for this CacheManager will be set to C:\temp\ehcache_auto_created_1461052429938.
Edit2: Теперь, когда я думаю об этом, я думаю, было бы приемлемо, если бы строки, которые не содержат достаточно столбцов, были бы пропущены вообще. Но мне нужна помощь и для такого поведения.
1 ответ
Вы можете использовать командлет ConvertFrom-Csv для преобразования вашего журнала:
$logFile = "logs\myCoolLogFile.log";
gc $logFile | ConvertFrom-Csv -Delimiter ' ' | Out-GridView
Почему вы используете -wait
включить Get-Content
командлет?