简体   繁体   中英

Control Debug Level in C++ Library - Linux

I have a C++ library, which is used in both Linux and Windows. I want to enable the user to control the debug level (0 - no debug, 1 - only critical errors ... 5 - informative debug information).

The debug log is printed to a text file.

In Windows, I can do it using a registry value (DWORD DebugLevel).

What can be a good replacement which works also for Linux? (Without 3rd party tools, for example Linux "registry").

Thanks in advance!

Does your library have some sort of initialisation function? Make the level a parameter to that function. Ideally store the passed-in value in a context structure or class if it makes sense for your API (ie if you require clients to always operate via a "context") - but if not, a global might be reasonable.

If it's largely for development purposes (ie the "user" you refer to is a developer using your library, not the end user of that code), the quickest/easiest way is to use an environment variable.

If it's to be controlled by the end-user, you probably need to extend your API so that the app developer can set the debug level in code, after reading his configuration files -- you wouldn't normally have a separate config file for just one library used by a program.

You can use the log4cxx framework. This is configurable through a file. I haven't tried it yet, but it should work with Windows too.

您可以在/ etc / YOURAPP或〜/ .YOURAPP或〜/ .config / YOURAPP中使用配置文件

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM