小编mef*_*rdm的帖子

每个应用会话的Nlog固定文件名

我正在使用Nlog从我的c#app登录.以下是<targets>我的Nlog.config中的部分:

<targets>
    <target name="logfile" xsi:type="File" fileName="..\logs\${date:format=yyyyMMdd_HHmmss}_trg.log"
    layout="${counter} | ${date:format=yyyy-MM-dd HH\:mm\:ss.ffff} | ${machinename} | ${level:uppercase=true} | ${logger:shortName=true} | ${stacktrace} | ${message:exceptionSeparator=EXCEPTION:withException=true}" 
    keepFileOpen="true"/>
</targets>
Run Code Online (Sandbox Code Playgroud)

对于filename我使用${date:format=yyyyMMdd_HHmmss}_trg.log基于创建时就来命名日志.但是,当我的应用程序运行时,记录器每秒都会创建一个新的日志文件.如何强制Nlog修复文件名,每个会话只创建一个日志?

c# logging filenames nlog

10
推荐指数
2
解决办法
6330
查看次数

如何使用C#和LINQ在XML内部提取信息?

这是我在StackOverflow上的第一篇文章,所以请耐心等待.如果我的代码示例有点长,我会提前道歉.

使用C#和LINQ,我试图id在更大的XML文件中识别一系列第三级元素(在这种情况下为000049).每个第三级id都是唯一的,我想要的是基于每个级别的一系列后代信息.更具体地说,如果type == Alocation type(old) == vaultlocation type(new) == out,然后我想选择id.下面是我正在使用的XML和C#代码.

一般来说,我的代码有效.如下所示,它将返回id两次000049,这是正确的.但是,我发现了一个小故障.如果我删除history包含的第一个块type == A,我的代码仍然会返回id两次000049,它应该只返回一次.我知道它为什么会发生,但我无法找到更好的方法来运行查询.有没有更好的方法来运行我的查询来获得我想要的输出并仍然使用LINQ?

我的XML:

<?xml version="1.0" encoding="ISO8859-1" ?>
<data type="historylist">
    <date type="runtime">
        <year>2011</year>
        <month>04</month>
        <day>22</day>
        <dayname>Friday</dayname>
        <hour>15</hour>
        <minutes>24</minutes>
        <seconds>46</seconds>
    </date>
    <customer>
        <id>0001</id>
        <description>customer</description>
        <mediatype>
            <id>kit</id>
            <description>customer kit</description>
            <volume>
                <id>000049</id>
                <history>
                    <date type="optime">
                        <year>2011</year>
                        <month>04</month>
                        <day>22</day>
                        <dayname>Friday</dayname>
                        <hour>03</hour>
                        <minutes>00</minutes>
                        <seconds>02</seconds>
                    </date>
                    <userid>batch</userid>
                    <type>OD</type>
                    <location type="old">
                        <repository>vault</repository>
                        <slot>0</slot>
                    </location>
                    <location type="new">
                        <repository>out</repository> …
Run Code Online (Sandbox Code Playgroud)

.net c# xml linq linq-to-xml

9
推荐指数
1
解决办法
2783
查看次数

如何写一个记录器

所以,我想在c#中为我正在开发的应用程序编写一个记录器.但是,由于我喜欢效率,我不想在执行期间反复打开和关闭日志文件.

我想我想将所有事件写入RAM,然后在应用程序退出时写入日志文件一次.这是一个好习惯吗?如果是这样,我该如何实施呢?

如果这不是一个好习惯,会是什么?

(而且我现在不使用Windows的事件日志.)

c# logging

3
推荐指数
1
解决办法
1175
查看次数

标签 统计

c# ×3

logging ×2

.net ×1

filenames ×1

linq ×1

linq-to-xml ×1

nlog ×1

xml ×1