У меня есть программа, которая сообщает об исключениях на моем сервере. Я также хотел бы отправить полный журнал текущего сеанса, когда произойдет исключение. Поскольку это отчет об ошибке, я хотел бы сконденсировать его до аккуратного небольшого потока данных с одним или двумя символами за действие. Примеры действий - это такие вещи, как: Щелчок по меню «Файл», «Открытие новой таблицы», сохранение текущей рабочей области. Один из методов может заключаться в том, чтобы сделать ключ, в котором говорится, что каждая буква в алфавите представляет конкретное действие, а затем декодирует его на моем сервере. Это может быть проблематично, если я хочу добавить строки в журнал. (Пример: открывает файл «example.txt»). Возможно, существует более объектно-ориентированный подход к этому, который не жертвует размером и автоматизирует кодирование/декодирование? Я просто занимаюсь мозговым штурмом, поэтому любые предложения или рекомендации приветствуются. Спасибо!Размер разумного метода для входа в C#
ответ
Вы считали, что вам нужно быть «сознательным размером» вообще. Ниже приведены некоторые показатели:
Предполагается, что у вас есть 1000 ошибок в день, и предположим, что каждая ошибка занимает 1k данных. Это около 1 МБ в день. После того, как вы получите около 350 МБ сообщений об ошибках. ОК.
Это вымышленные номера, но в любом случае эти показатели кажутся мне тривиальными, особенно потому, что они также слишком раздуты ... Вы ожидаете более 1000 событий ошибки в день? Будут ли ваши индивидуальные ошибки больше 1k? Вы регистрируетесь на встроенном устройстве? Возможно нет.
Я думал, что то же самое –
@ Andre: мне тоже понравилось ваше сообщение. Увы, у меня нет голосов за день. :-( –
Моего мнения:
Вы можете использовать исключения для любых целей, в целом, но, как вы рассматриваете для отправки исключения к серверу, то вы можете использовать исключения для представления ошибки программирования, то есть, что-то, что вас беспокоит.
Эти виды исключений должны быть редкими, ваше программное обеспечение не будет иметь дюжину из них и бросать много раз в день. Если да, то почему вы должны сжимать столько информации, которую вы отправляете на сервер? Почему бы вам просто GZIP вызвать столбец вместе с каким-то протоколом log4net и отправить его на сервер? Вы сэкономите время.
Я хотел бы, чтобы уплотнить его аккуратный маленький поток данных с одного или двух символов в действии
Проще всего сохранить то, что вы хотите в некоторых удобный формат (например, обычный текст), а затем сжать его с помощью некоторого стандартного инструмента сжатия: пусть алгоритм сжатия будет работать, как сжать его.
Я бы просто использовал шаблон команды и постоянный фоновый поток, сидящий в цикле, вызывающий метод .Execute() для всех объектов, подлежащих обработке. то вы получаете преимущество в том, что можете дросселировать записи db, более легко записывать db-файлы и, возможно, даже использовать bcp для передачи данных. вы всегда можете архивировать и удалять старую информацию об исключениях.
- 1. Запрос для анализа данных входа и разумного определения сработавшей смены
- 2. Создание миниатюр разумного размера для веб-приложения
- 3. Поиск разумного диапазона
- 4. динамический размер для микрофонного входа
- 5. Размер по умолчанию для входа в Hadoop
- 6. Размер шрифта для входа в систему PayPal
- 7. NSDocument - установка разумного начального местоположения для окна
- 8. Таблицы PDF произвольные (в пределах разумного) Ширина
- 9. Создание метода входа в Xamarin.forms
- 10. WordNet: получение наиболее разумного определения
- 11. Использование C# для входа в Active Directory
- 12. C# Валидация для входа
- 13. Как извлечь текст из разумно разумного HTML?
- 14. Cuda ptxas предупреждения (размер стека для входа)
- 15. Получить имя пользователя для входа в C#
- 16. Scipy's curve_fit не дает разумного результата
- 17. Создание экземпляра метода подключения для входа в систему
- 18. Что я должен вернуть для метода входа в свой API?
- 19. Максимальный размер метода в java?
- 20. Функция для определения разумного первоначального предположения для scipy.optimize?
- 21. Размер метода Get
- 22. Как добавить человека, шесть свойств данных и правила для разумного?
- 23. Конструктор C++ для метода
- 24. Различают две точки входа метода
- 25. Почему добавление виртуального метода увеличивает размер класса в C++?
- 26. Базовый счетчик для входа C#
- 27. Размер буфера в C++
- 28. Swift - функция разумного отслеживания потребления времени
- 29. Когда это NIH против разумного инвестирования времени?
- 30. Установить размер массива внутри метода?
Я бы посоветовал вам рассмотреть вопрос о конфиденциальности пользователя. Что делать, если пользователь вводил пароль до того, как произошло исключение? Я рад, что она была бы довольно недовольна, узнав, что разработчик разбившегося приложения только что получил часть своего пароля. – Rom