0

背景

使用nxlog收集win server 2012 R2 server的日志。配置文件如下

define ROOT     C:\Program Files (x86)\nxlog
define CERTDIR  %ROOT%\cert
define CONFDIR  %ROOT%\conf
define LOGDIR   %ROOT%\data
define LOGFILE  %LOGDIR%\nxlog.log
LogFile %LOGFILE%

Moduledir %ROOT%\modules
CacheDir  %ROOT%\data
Pidfile   %ROOT%\data\nxlog.pid
SpoolDir  %ROOT%\data

<Extension _syslog>
    Module      xm_syslog
</Extension>

<Input in1>
    Module      im_file
    ReadFromLast true      
    SavePos     false      
    File     "C:\\中文\log.log"
</Input>

<Output out>
    Module      om_udp
    Host        192.168.40.3
    Port        514
</Output>

<Route 1>
    Path        in1 => out
</Route>

过程

如果我们使用后台代码,我们会得到错误。查看服务器上nxlog的日志,发现如下错误

2020-11-26 10:13:02 ERROR failed to open C:\中文\log.log; Invalid argument
2020-11-26 10:13:04 ERROR apr_stat failed on file C:\中文\log.log; Invalid argument

但是如果我们只是使用英文字符串目录。一切都会变好。如

define ROOT     C:\Program Files (x86)\nxlog
define CERTDIR  %ROOT%\cert
define CONFDIR  %ROOT%\conf
define LOGDIR   %ROOT%\data
define LOGFILE  %LOGDIR%\nxlog.log
LogFile %LOGFILE%

Moduledir %ROOT%\modules
CacheDir  %ROOT%\data
Pidfile   %ROOT%\data\nxlog.pid
SpoolDir  %ROOT%\data

<Extension _syslog>
    Module      xm_syslog
</Extension>

<Input in1>
    Module      im_file
    ReadFromLast true      
    SavePos     false      
    File     "C:\\log.log"
</Input>

<Output out>
    Module      om_udp
    Host        192.168.40.3
    Port        514
</Output>

<Route 1>
    Path        in1 => out
</Route>

问题

如何使 nxlog 在非英文字符串目录中收集日志?

旧约

4

1 回答 1

0

确保 conf 文件代码为 UTF-8 在此处输入图像描述

于 2020-12-08T03:55:16.497 回答