执行按位以解码系统日志优先级代码

时间:2012-11-16 21:08:14

标签: powershell bit-manipulation syslog

我正在尝试如何解码PowerShell中的syslog优先级代码。我知道优先级代码是消息的facilty和严重性的组合,并且在添加到严重性代码之前设施被多了8,但我不确定如何在Powershell中对此进行编码。

因此37/8 = 4.625的优先级为您提供 4 =设施

以及37-(4*8)=5的优先级,它会为您提供 5 =严重程度

4工厂是安全/授权信息

5严重性是一个通知:正常

所有这些都在RFC 3164(http://www.ietf.org/rfc/rfc3164.txt)中列出,但我不确定如何在Powershell代码中进行此解码

1 个答案:

答案 0 :(得分:2)

试试这个(不按位):

function get-syslog {
param($pri)

[int]$facility = [Math]::truncate([decimal]($pri/8))
$severity = $pri - ($facility *8 )

"Facility is $facility - Severity is $severity"
}

使用:

get-syslog -pri 23
Facility is 2 - Severity is 7