nxlog 进程根据文件名记录文件
nxlog process logs files based on filename
我在 C:\Logs 中有很多日志文件。
我在每个单独的站点文件夹(W3SVCXX,其中 XX 是 IIS 的站点 ID)中都有 IIS 日志,但在同一个 C:\Logs\ 文件夹中,我有来自相同网站的其他日志文件,但作为一部分通过 Log4Net 记录网站上的应用程序 运行。
我当前的 NXLog 配置:
<Input i_IISSITES>
Module im_file
File "C:\Logs\u_ex*"
SavePos TRUE
Recursive TRUE
InputType LineBased
Exec $Hostname = 'stg-01-iom';
Exec if $raw_event =~ /^#/ drop(); \
else \
{ \
w3c->parse_csv(); \
$SourceName = "IIS"; \
$EventTime = parsedate($date + " " + $time); \
$Message = to_json(); \
}
</Input>
<Output o_PLAINTEXT>
Module om_udp
Host 10.50.108.32
Port 5555
</Output>
<Route r_IIS>
Path i_IISSITES => o_PLAINTEXT
</Route>
这对于匹配文件名 U_ex* 的 IIS 日志目前非常有效。
文件夹结构:
c:\Logs\
- L009
- Dir1
- Dir2
- FileName.Log
- L008
- Dir3
- RandomFileName.Log
- L008
- W3SVC1
- u_ex1232.log
- W3SVC2
- W3SVC3
等等等
现在我可以特定于 IIS 日志,因为文件名是 u_ex*,但对于我的其他日志文件,它们可以任意命名。
所以对于我的其他输入,我需要能够定位所有 .log 但不是 u_ex.log.
有什么想法吗?
谢谢,
迈克尔
如果您需要处理所有日志,那么您可以只使用一个并根据文件名进行不同的解析,而不是定义两个输入实例:
<Exec>
if file_name() =~ /u_ex\d+\.log$/
{
# parse as IIS
}
else
{
# parse as other
}
</Exec>
我在 C:\Logs 中有很多日志文件。
我在每个单独的站点文件夹(W3SVCXX,其中 XX 是 IIS 的站点 ID)中都有 IIS 日志,但在同一个 C:\Logs\ 文件夹中,我有来自相同网站的其他日志文件,但作为一部分通过 Log4Net 记录网站上的应用程序 运行。
我当前的 NXLog 配置:
<Input i_IISSITES>
Module im_file
File "C:\Logs\u_ex*"
SavePos TRUE
Recursive TRUE
InputType LineBased
Exec $Hostname = 'stg-01-iom';
Exec if $raw_event =~ /^#/ drop(); \
else \
{ \
w3c->parse_csv(); \
$SourceName = "IIS"; \
$EventTime = parsedate($date + " " + $time); \
$Message = to_json(); \
}
</Input>
<Output o_PLAINTEXT>
Module om_udp
Host 10.50.108.32
Port 5555
</Output>
<Route r_IIS>
Path i_IISSITES => o_PLAINTEXT
</Route>
这对于匹配文件名 U_ex* 的 IIS 日志目前非常有效。
文件夹结构:
c:\Logs\
- L009
- Dir1
- Dir2
- FileName.Log
- L008
- Dir3
- RandomFileName.Log
- L008
- W3SVC1
- u_ex1232.log
- W3SVC2
- W3SVC3
等等等
现在我可以特定于 IIS 日志,因为文件名是 u_ex*,但对于我的其他日志文件,它们可以任意命名。
所以对于我的其他输入,我需要能够定位所有 .log 但不是 u_ex.log.
有什么想法吗?
谢谢,
迈克尔
如果您需要处理所有日志,那么您可以只使用一个并根据文件名进行不同的解析,而不是定义两个输入实例:
<Exec>
if file_name() =~ /u_ex\d+\.log$/
{
# parse as IIS
}
else
{
# parse as other
}
</Exec>