Nlog写入一个空白日志文件

时间:2015-03-06 18:00:09

标签: nlog

这是我的配置文件目标部分中的内容:

<target xsi:type="File" name="fileError" fileName="C:\log\patchError.log" layout="${message}>

这是我的规则部分中的内容:

<logger name="*" minlevel="Error" writeTo="fileError" />

这就是我在课堂上称呼它的方式:

private Logger logger = LogManager.GetCurrentClassLogger();
logger.Error("ERROR");

当我运行代码时它确实创建了一个C:\ log \ patchError.log文件,但文件是空白的,文件中没有任何内容

我没有想法,我尝试了一切,是的,我将NLog.config设置为始终复制并且NLog.XSD存在

这是完整的配置

<?xml version="1.0" encoding="utf-8" ?>
<nlog throwExceptions="true" xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <targets>
        <target xsi:type="File" name="fileError" fileName="C:\log\patchError.log" layout="${message}" />
        <target xsi:type="File" name="fileInfo" fileName="C:\log\patchInfo.log" layout="${message}" />
    </targets>
    <rules>
        <logger name="*" minlevel="Error" writeTo="fileError" />
        <logger name="*" minlevel="Info" writeTo="fileInfo" />
    </rules>
</nlog>

2 个答案:

答案 0 :(得分:0)

我弄清楚了,它与文件夹权限有关。

我使用构建的可执行文件并在VM上运行它,它运行得很好......所以是的,我的开发机器上的文件夹权限

答案 1 :(得分:0)

将来,也许可以帮助您打开内部日志。

from inspect import signature, Parameter
args =[]
for x, p in signature(foo).parameters.items():
    if p.default == Parameter.empty and p.kind != Parameter.VAR_POSITIONAL:
        args.append(x)

例如,将internalLogLevel的值更改为debug。

希望它有所帮助!