Иногда приложения начинают выделять человеческие читаемые строки (например, сообщение журнала, например), а затем мы определяем, что в будущем мы хотим программно обрабатывать эти строки, возможно, показывая определенные строки в одну сторону или подсчитывая другие типы строк, чтобы показать число встречаемости.Каковы хорошие решения для связывания идентификатора с сообщением?
Для этого код, обрабатывающий эти строки, должен иметь представление о том, что каждая строка «означает», поэтому его можно классифицировать и обрабатывать соответственно ... мой вопрос: как лучше всего это сделать? Очевидно, вы не хотите, чтобы ваш код выполнял строковые сравнения с текстом каждого сообщения. Это неудобно и хрупко.
Некоторые решения, которые я видел, включают префикс строки с идентификатором сообщения, например, M123, поэтому ваш код обработки может читать этот идентификатор и определять, как обрабатывать строку. Это кажется менее желательным, потому что вам нужно отслеживать уже идентифицированные идентификаторы сообщений и т. Д.
Exmaple: у вас есть приложение, которое запускает несколько роботов, выдавая им всевозможные команды инициализировать их и выполнять желаемые задачи. Первоначально различные части вашего приложения, которые взаимодействуют с роботами выдавать текстовые сообщения в какой-то вывод (возможно, журнал), как это:
Robot инициализация 1 старт Робот 1 ждет SSH ответ Робота 2 запуска инициализации Robot 4 инициализация завершена Robot 3 не удалось ответить в течение тайм-аута Robot 1 закрываются ...
Через некоторое время вы понимаете, что в дополнение к журналу текстуальное прокруткой, вы хотели бы, чтобы наглядно показать, какое-то представление каждый робот, возможно, окно с флажком для каждой важной вехи, которая может произойти в его жизни , Это было бы более полезным альтернативным пользовательским интерфейсом.
Например, вы хотите показать флажок, когда робот успешно запустился, и когда он успешно выполнил свою задачу и так далее.
Вопрос в том, как этот новый «вид» интерпретирует текущие сообщения, исходящие от вашего приложения, чтобы он знал, что они «означают», и может их обработать? Например, если представление хочет показать индикатор для робота, который завершил инициализацию, должен ли он выполнять сравнение строк с сообщениями журнала, которые ищут текст «Завершение инициализации робота N»? Это кажется хрупким, поскольку однажды вы можете настроить текст сообщения журнала.
Одним из вариантов может быть префикс эмиссии каждого сообщения журнала с уникальным неизменяемым идентификатором сообщения, например, «M24 Robot 1 завершил инициализацию». Таким образом, новый взгляд просто анализирует M24 и знает, что означает «завершение инициализации».
Это довольно расплывчатым и абстрактным. можете ли вы показать нам конкретный пример того, что вы 're talk about? –
[KeyValuePair] (https://msdn.microsoft.com/en-us/library/5tbh8a42%28v=vs.110%29.aspx) –
Выйти на лимите b здесь ... пытаетесь ли вы связать число (код ошибки) с зарегистрированными сообщениями?С целью создания уникальных кодов ошибок, а также статических значений, которые не меняются между компиляциями? – Anssssss