Использовать другой рендер Nlog для той же цели? - PullRequest
0 голосов
/ 02 мая 2020

Я взял на себя проект, который использует очень простую конфигурацию NLog ... единственной целью является текстовый файл, есть только одно правило, и макет является текстовым макетом по умолчанию.

Он имеет все было нормально до сегодняшнего дня, когда у меня возникла необходимость отправлять блоки необработанных строк (то есть, не обработанные каким-либо макетом NLog или обработанные другим макетом для той же цели)

Эти блоки неформатированных строк будут отправлены в та же цель, что и для обычных отрисованных линий.

Раньше я писал в цель с only простой текстовой компоновкой по умолчанию. Например ...

    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| This line rendered by simple text layout
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| And so was this
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| But...
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| 
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| I wish this sequence of lines was 
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| rendered by a different layout which
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| only printed the message itself.
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| (i.e., suppress datetime, level and source)
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| 
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| And...
    2020-05-01 13:57:58.3275|INFO|BlahBlah.Driver| Then I could return to the original 
    2020-05-01 13:57:58.3275|INFO|BlahBlah.Driver| layout for subsequent lines! 
    2020-05-01 13:57:58.3275|INFO|BlahBlah.Driver| So I could send more
    2020-05-01 13:57:58.3275|INFO|BlahBlah.Driver| useless information to the target (LOL)

Но я хочу, чтобы писал в одну и ту же цель, используя разные макеты. Например ...

    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| This line rendered by simple text layout
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| And so was this
    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| But...

    I wish this sequence of lines was 
    rendered by a different layout which
    only printed the message itself.
    (i.e., suppress the datetime, level and source)

    2020-05-01 13:55:04.6565|INFO|BlahBlah.Driver| And...
    2020-05-01 13:57:58.3275|INFO|BlahBlah.Driver| Then I could return to the original 
    2020-05-01 13:57:58.3275|INFO|BlahBlah.Driver| layout for subsequent lines! 
    2020-05-01 13:57:58.3275|INFO|BlahBlah.Driver| So I could send more
    2020-05-01 13:57:58.3275|INFO|BlahBlah.Driver| useless information to the target (LOL)

Я уверен, что это основы c. Но я новичок в этой среде ведения журналов и просто не могу найти или найти и найти жизнеспособное решение.

Но я настраиваю NLog программно. Вот как наша установка в настоящее время выполняется ...

public static Logger nLogSetupGeneric(string nLogFileName)
{
    LoggingConfiguration config = new LoggingConfiguration();
    FileTarget logfile = new FileTarget() { FileName = nLogFileName, Name = "logfile" };
    config.LoggingRules.Add(new LoggingRule("*", LogLevel.Debug, logfile));
    LogManager.Configuration = config;
    Logger localNlog = LogManager.GetCurrentClassLogger();
    return localNlog;
}

...