end2endzone / ShellAnything

ShellAnything is a C++ open-source software which allow one to easily customize and add new options to *Windows Explorer* context menu. Define specific actions when a user right-click on a file or a directory.
MIT License
180 stars 27 forks source link

Library independent logging support #137

Closed end2endzone closed 9 months ago

end2endzone commented 9 months ago

Is your feature request related to a problem? Please describe. All application modules (version 0.8.0 and lower) dependents on Google GLOG library for logging. This way of implementing logging is complicated, increases class coupling and forces all future development to use the same logging library. A more maintainable logging feature should be implemented.

Describe the solution you'd like ShellAnything's core should define a logging interface that is then implemented by a logging framework. This method would assure that ShellAnything logging code can be easily swapped for another logging library/framework.

Describe alternatives you've considered The actual implementation is the alternative and is considered problematic because all classes and modules have a dependency to GLOG.

Additional context N/A

end2endzone commented 9 months ago

Sample code for manually logging to GLOG library from outside of a source file :

::google::LogMessage("this_file_do_not_exists.cpp", 0).stream() << "Hello world from my fake source file!";
::google::LogMessage("this_file_do_not_exists.cpp", 0, google::GLOG_WARNING).stream() << "sample warning message!";
::google::LogMessage("this_file_do_not_exists.cpp", 0, google::GLOG_ERROR).stream() << "example of an error message!";