As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm writing a C++ application, that I have to deploy to a server in the future (maybe as a node.js C++ module).
I really need a logging library that help me during the development process.
Now I'm using log4cxx, but I need the code to be portable, so I prefer to have a source file to include in the project. I also need a performing C++ logger, that does not slow down the application in both case with logging turned on and off. Can anyone help me with this choice? My options are:
Log4cplus: simple and easy to use and extend. But performance?
Google-Glog: easiest to use and very very fast. But I need to compile it and it use system flag, I wonder if it is a problem when I use it with node.js.
As far as I know the log4cxx uses Apache runtime as its base so ,portability is not an issue with log4cxx. Also it provides macros for optimized logging. Is there anyother reason you want to shift from log4cxx?
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I apologize to take a topic which is widely discussed before - but I find none of the discussions clearly tell which one to use ultimately. My requirements for a logging framework in my C++ project are
Thread safe.
Should support multiple targets.
Log rotation possible.
A way to identify module's implicitly.
I have been using boost log for some time in a small c++ project and it worked well. But when I took to a large C++ project - I found supporting multiple targets(I mean multiple files for the same project) is a nightmare, No way to implicitly mention which module is logging and above all the compile time has increased at-least 40%.
Now I am looking at alternate framework and think log4cplus and logog seems fill all my requirements. Wanted to get an expert opinion on which would suit the above criteria rather than getting in a soup again after using the library for some time.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What are recommendation on C++ logging library/framework with full control over it. I want to be able to have a full control over where logs are stored, what information to produce and show/hide without having compilation errors. I have tried log4cxx and log4cplus but they dont have complete control over logging.
I use GLog for some projects. It works quite well. It has many features that allow you to control different aspects of logging.
There is Boost.Log. However, as the site says, it is not officially part of Boost. It did conditionally pass review, but there are some heavy duty fixes suggested. It is a shame as I like to get as much as I can from Boost for consistency.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
In Windows API there are a big set of methods for manipulating of paths and URLs at Shell Path Handling Functions. The functions include helpers like PathAddBackslash, PathCanonicalize, PathCombine, and PathIsDirectory.
The question is: are there any Posix provided functionality or Linux-based library that gives analogous functionality? That is, simplifies paths combination, canonicalization, parsing, as well as URLs parsing?
I know that it is possible to write such functions with C++ (not small but not complex job), but my question is: are there any ready "official" libraries on Linux that already have similar functionality?
I am quite happy with boost_filesystem. Best part of it is that it is cross-platform, so it also works on Windows.
Another possibility is leveraging the capabilities of Qt or GLIB (GTK+).
Finally, most path-mangling operations are already in the POSIX standard and available out-of-the-box. For an example see the manpage of basename(3), dirname(3):
http://www.kernel.org/doc/man-pages/online/pages/man3/dirname.3.html
You could also use POCO C++ libraries, take a look here:
http://pocoproject.org/features.html
And here you could find more on filesystem api:
http://pocoproject.org/slides/080-Files.pdf
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Are there some cases where it may not be a good idea to use the code of an open source project even though your company might allow you to do so?
Some cases that I think might be valid are:
The code may be implemented in a different languages.
It is not portable
It may need some other close-source libraries
What might be some other reasons?
Yes, some open-source licenses may require you to expose your source code, e.g GPL.
http://encodable.com/tech/blog/2006/02/25/Why_the_GPL_is_Incompatible_with_Commercial_Software
When security is involved and you do not have access to the actual code so you never (truly) know what you are using.
Beta code may not be appropriate in a production system.
if the library has a web page and there hasn't been any activity on it for a long long time. Either the code is perfect or no one is looking at the code anymore and no bug fixes are being applied.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I know this kind of question is asked a lot but I have a set of requirements:
1. Be able to compile and develop in Visual Studio on Windows.
2. Be somewhat modern - Async/threaded, clean.
3. C++
I've looked at thrift, messagepack, and even protobuf+RPC. All of them have massive issues in Windows.
FYI - I'm no pro programmer so asking me to apply out-dated patches to untested code is a pretty big ask. I know thrift has some patches available, but their >2MB big for old versions of thrift, with other patches thrown on top. God knows how well that'll work.
Did you consider using Protobuf together with Boost asio? Of course it is not an RPC library, so that part you would have to do at your own, but it would be asynchronous and fast.
you can use ICE & proto buffer. since version 3.4.1, proto objects have been suported by ICE though there are some limits.