Автоматизированный инструмент для рефакторинга логов в программном обеспечении

С. А. Надеев

Аннотация


В последние годы наблюдается рост научных публикаций по логированию программного обеспечения, что указывает на увеличивающийся интерес к этой теме. В частности, в областях, такие как авиация, где надежность критически важна, требования к мониторингу программ еще выше, что подчеркивает значимость работы с логами для обеспечения безопасности и стабильности программных систем. Качественное логирование обеспечивает точность, полноту и удобство логов для обнаружения и устранения ошибок, мониторинга работы программы и анализа событий. Исследования в этой области могут привести к разработке более эффективных методов логирования, улучшая процессы разработки и обслуживания программного обеспечения. В целях повышения эффективности логирования в статье предлагается новый инструмент для рефакторинга логов в исходном коде программы, основанный на их приведении к единому формату путем автоматизации методом статического анализа. Предлагаемый инструмент проходится по файлам программы и выполняет три основные задачи: находит переменные, используемые для ведения логов, добавляет аргументы в вызовы логгера и анализирует сообщения, записываемые логгером, на наличие переменных. Такой подход позволяет стандартизировать процесс логирования и улучшить информативность логов. Также в статье рассматриваются общие недостатки существующих решений, которые заключаются в том, что добавление дополнительных параметров в существующие логи не предполагает стандартизации формата, что усложняет анализ данных, поскольку различные форматы соответствуют разным типам информации и их структурам, что затрудняет выявление проблемных мест и отладку ошибок.

Ключевые слова


Логирование; статический анализ; рефакторинг; .NET; Roslyn.

Полный текст:

PDF

Литература


Schmidt K., Phillips C., Chuvakin A. Logging and Log Management: The Authoritative Guide to Understanding the Concepts Surrounding Logging and Log Management. Newnes, 2012.

Gholamian S., Ward P. A. S. A comprehensive survey of logging in software: From logging statements automation to log mining and analysis // arXiv preprint arXiv: 2110. 12489. 2021.

Chen B., Jiang Z. M. A survey of software log instrumentation // ACM Computing Surveys (CSUR). 2021. V. 54. No. 4. Pp. 1–34.

Орлов Г. О. Подход к обеспечению безопасности программного кода в веб-ориентированной среде // СИИТ. 2023. Т. 5. № 5(14). С. 68–77. EDN: HPCIMR. [[ Orlov G. O. “An approach to ensuring the security of program code in a web-oriented environment” (in Russian), System Engineering and Information Technologies. 2023. Vol. 5, No. 5(14), pp. 68-77. EDN: HPCIMR. (In Russian). ]]

Васильев В. И., Картак В. М. Применение методов искусственного интеллекта в задачах защиты информации (по материалам научной школы УГАТУ) // СИИТ. 2020. Т. 2. № 2(4). С. 43–50. EDN: ZTQFCW. [[ Vasiliev V. I., Kartak V. M. “Application of artificial intelligence methods in information security problems (based on materials from the scientific school of UGATU)” (in Russian) // SIIT. 2020. Vol. 2, No. 2(4), pp. 43-50. EDN: ZTQFCW. (In Russian). ]]

He S. et al. An empirical study of log analysis at Microsoft // Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 2022. Рp. 1465–1476.

He S. et al. Experience report: System log analysis for anomaly detection // 2016 IEEE 27th International Symposium on Software Reliability Engineering (ISSRE). IEEE. 2016. Рp. 207–218.

Li H. et al. Towards just-in-time suggestions for log changes // Empirical Software Engineering. 2017. V. 22. Рp. 1831–1865.

Zhu J. et al. Learning to log: Helping developers make informed logging decisions // 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering. IEEE. 2015. V. 1. Рp. 415–425.

Yuan D. et al. Improving software diagnosability via log enhancement // ACM Transactions on Computer Systems (TOCS). 2012. V. 30. No. 1. Pp. 1–28.

Aiken A. et al. An overview of the Saturn project // Proceedings of the 7th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering. 2007. Pp. 43–48.

Yuan D. et al. Be conservative: Enhancing failure diagnosis with proactive logging // 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI 12). 2012. Pp. 293–306.

Vasani M. Roslyn Cookbook. Packt Publishing Ltd, 2017.

Chhajed S. Learning ELK Stack. Packt Publishing Ltd, 2015.


Ссылки

  • На текущий момент ссылки отсутствуют.


(c) 2024 С. А. Надеев