使用Out-gridview显示Log

时间:2016-04-19 07:14:38

标签: powershell out-gridview

我是PowerShell脚本的新手。我想使用out-gridview在gridview中显示一个日志文件。

假设我有一个非常简单的脚本,比如

$logFile = "logs\myCoolLogFile.log";
gc -wait $logFile | Out-GridView -Wait

这将显示单个单元格中的每一行。我的日志格式如下:

LEVEL TIMESTAMP LOGGERNAME [THREAD]: MESSAGE

每个条目由一个或多个空格分隔(但如果更合适,我可以轻松地将其更改为由一个制表符分隔)。该消息可能包含其他空格。以前的条目永远不会包含空格。

我想为LEVELTIMESTAMP等提供不同的列。但我不确定如何实现这一目标。任何帮助表示赞赏。

编辑: @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 个答案:

答案 0 :(得分:1)

您可以使用ConvertFrom-Csv cmdlet转换日志:

$logFile = "logs\myCoolLogFile.log";
gc $logFile |  ConvertFrom-Csv -Delimiter ' ' | Out-GridView

为什么使用-wait cmdlet上的Get-Content开关?