Разобрать строку в JSON во FluentD

Это не проблема .NET, это следствие того, как работает COM. Он не поддерживает наследование. Вы исправите это на стороне клиента, ему нужно вызвать QueryInterface () с IID для IBaseClass, чтобы получить указатель интерфейса на интерфейс IBaseClass, чтобы он мог вызвать GetA (). .NET interop автоматически обеспечивает реализацию QI, которая делает эту работу. Тем не менее, в этом случае он не очень удобен в использовании, разработайте свой код на C #, чтобы клиент мог легко использовать ваш класс, а не наоборот. Обычно вам нужен метод переопределения с одним слоем, который делегирует основную реализацию класса C #.

Обратите внимание, что есть проблема с сигнатурами вашего метода и использованием атрибута [PreserveSig]. Они не могут быть вызваны через IDispatch и не могут быть автоматически настроены. Для этого требуется метод с HRESULT в качестве типа возвращаемого значения. Это автоматически при удалении атрибута.

0
задан Sleeeper 19 March 2019 в 08:59
поделиться

1 ответ

Вы можете использовать regexp парсер и форматировать события в JSON. Вот мой пример, где я читаю ввод из хвоста файла журнала (с тем же вводом, что и у вас) и вывод в stdout. Дайте мне знать.

<source>
  @type tail
  path /tailsource/t.log
  pos_file /tailpos/t.log.pos
  read_from_head true
  tag temp
  <parse>
    @type regexp
    expression /^(?<timestamp>.*?)\s\| (?<system>.*?)\s\| (?<module>.*?)\s\| (?<message>.*)$/
  </parse>
</source>

<match>
  @type stdout
</match>

Вот пример вывода -

{"timestamp": "2019-03-18 15: 56: 57.5522", "system": "HandFarm", "module": "ResolveDispatcher", "message": "начать разрешение msg: 8"}

0
ответ дан Imran 19 March 2019 в 08:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: