Как избавиться от "\\" в сообщениях Nlog? - PullRequest
0 голосов
/ 25 марта 2019

Я использую Nlog для записи сообщений в Elasticsearch. Сообщения часто содержат пути к файлам. Nlog, кажется, экранирует символ "\" в каждом пути к файлу, и я хочу избежать этого. Атрибут encode = "false" не работает с тегом "field", используемым для настройки цели Elasticsearch. Есть ли другой способ сохранить путь к файлу без лишних "\"?

1 Ответ

0 голосов
/ 26 марта 2019

Я перебрал документы более тщательно и наткнулся на Replace Layout Renderer.Вот что, похоже, работает в моем случае:

<variable name="replacedstring" value="${replace:searchFor=\\:wholeWords=false:replaceWith=/:regex=false:inner=${message}}" />

Вы просто определяете переменную в файле Nlog.config и используете ее там, где обычно используете макет, содержащий предварительно измененную строку (внутренний атрибут).Я надеюсь, что это то, что я искал.Мне также было интересно, возможно ли определить несколько шаблонов в одной переменной.Например, мы хотим заменить «\» на «/», и в то же время мы хотим заменить «\ r \ n» на «-» в той же внутренней строке.Кто-нибудь знает, возможно ли это с помощью данного рендерера?Документы ничего не говорят об этом.

...