Abstract
Relevancy of this work is based on the fact that having an understanding of why given code behaves the way it does, both during normal execution and when encountering erroneous states, is an invaluable part of a good software design. As software systems become more complex, the demand for solutions, that can give deeper insight into code execution, remains high. The goal of this work is to formalize a software tool able to provide better observability of a program. Main methods used are: analysis of common approaches such as monitoring and logging, formalization of main components and modeling of an example implementation based on the Singleton software pattern. As a result, “severity only” based logging was analysed and core parts of “adaptive logging method” were described in a similar manner. There are two distinct features of this method: log tagging and subsequent introduction of a configuration schema that is capable of adapting to changing requirements during software program execution. Systems utilizing such approach gain the ability to extract more precise information about execution flow and also can focus on particular components that might behave incorrectly. As this switch is designed to happen without restarting the observed program, it should be possible to debug and investigate some issues without the need to try and reproduce from scratch the state of an environment where those have occurred. An example of formal description based on the Singleton software pattern is also presented, describing necessary methods and their signatures required to set up a basic variant of an adaptive logging method. This approach could be utilized by a variety of different applications and programming languages as it is developed in general terms and all required abstractions should be present in multiple environments
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have