使用Out-gridview显示Log
Use Out-gridview to display Log
我对 powershell 脚本还很陌生。我想使用 out-gridview 在 gridview 中显示日志文件。
假设我有一个非常简单的脚本,例如
$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: 现在,我想,如果不包含足够列的行将被完全跳过,我想这是可以接受的。但我也确实需要帮助来解决这种行为。
您可以使用 ConvertFrom-Csv cmdlet 来转换您的日志:
$logFile = "logs\myCoolLogFile.log";
gc $logFile | ConvertFrom-Csv -Delimiter ' ' | Out-GridView
为什么要在 Get-Content
cmdlet 上使用 -wait
开关?
我对 powershell 脚本还很陌生。我想使用 out-gridview 在 gridview 中显示日志文件。
假设我有一个非常简单的脚本,例如
$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: 现在,我想,如果不包含足够列的行将被完全跳过,我想这是可以接受的。但我也确实需要帮助来解决这种行为。
您可以使用 ConvertFrom-Csv cmdlet 来转换您的日志:
$logFile = "logs\myCoolLogFile.log";
gc $logFile | ConvertFrom-Csv -Delimiter ' ' | Out-GridView
为什么要在 Get-Content
cmdlet 上使用 -wait
开关?