Получение имени регистратора в файл Excel с помощью NLog - PullRequest
0 голосов
/ 14 мая 2018

Благодаря комментарию Рольфа в этом вопросе: NLog в C # с серьезностью и категориями

Я могу записать в текстовый файл категорию сообщения журнала (например, «Термальный»)или «База данных» или «Механический». Я делаю это просто передавая имя методу «GetLogger».

public MainWindow()
    {
        InitializeComponent();
        var logger = NLog.LogManager.GetCurrentClassLogger();
        logger.Info("Hello World");

        (NLog.LogManager.GetLogger("Database")).Info("Here is a DB message");
        (NLog.LogManager.GetLogger("Thermal")).Info("Here is a Thermal message");
    }

Текстовый файл выглядит так:

2018-05-13 17:40:47.7442|INFO|NLogExperiments.MainWindow|Hello World
2018-05-13 17:40:50.3404|INFO|Database|Here is a DB message
2018-05-13 17:40:50.3404|INFO|Thermal|Here is a Thermal message

Это очень хорошо. Я мог бы задать в отдельном вопросе, как переформатировать его.
Теперь я хотел бы получить эти сообщения в файл CSV (Excel). Я использую:

<target name="excelfile" xsi:type="File" fileName="nLog.csv" archiveAboveSize="50000000" archiveNumbering="Sequence" maxArchiveFiles="3">
  <layout xsi:type="CsvLayout">
    <!-- Layout Options -->

    <column name="time" layout="${longdate}" />
    <column name="level" layout="${level}"/>
    <column name="name" layout="${name}"/>
    <column name="message" layout="${message}" />
    <column name="codeLine" layout="${event-context:item=codeLine}" />

  </layout>
</target>

но вывод только:

time,level,name,message,codeLine
2018-05-13 17:40:47.7442,Info,,Hello World,
2018-05-13 17:40:50.3404,Info,,Here is a DB message,
2018-05-13 17:40:50.3404,Info,,Here is a Thermal message,

Это не удивительно. Я использовал «имя» в качестве предположения.
Как называется поле в GetLogger?
В целом, как сделатьЯ знаю все параметры, которые можно вставить в макет CSV? Наконец, есть ли хорошее руководство по использованию NLog с CSV? Я не нашел ни одного.

Спасибо,

Дейв

1 Ответ

0 голосов
/ 14 мая 2018

Как называется поле в GetLogger?

Вы ищете ${logger} - см. $ {logger} документы

В целом, как мне узнать все параметры, которые я могу добавить в макет CSV?

Вы можете использовать все средства визуализации макета, см. Список со всеми средствами визуализации макета

Параметры форматирования CSV приведены в CsvLayout docs

...