User Ratings

★★★★★
★★★★
★★★
★★
22
0
0
1
3
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 4 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 3 / 5

Rate This Project
Login To Rate This Project

User Reviews

  • This logging library is not for the faint of heart. It's quite user-hostile, partly due to the lack of good documentation. Even so, this library can serve adequately for simple applications. The main problem lies with the way it manages lifetimes, memory and initialization. One cannot initialize the library more than once. If your client application forks, you better shut down the logger first, and then make sure that the new process immediately does an exec, after which the new process must reinitialize the logger. And the forking/parent process can no longer use the logger. This logger could be a great one with a few changes: 1. Get rid of all global/static objects. Allow the user to create and manage the DefaultContext, etc, with modern RAII techniques. 2. Allow the library to be initialized and uninitialized multiple times, similar to a Phoenix Singleton.
  • hi worked quite well for me here is a guide if you have problems How to Linux unzip the files and open now a terminal in the created folder step 1 enter in your terminal: cmake . step 2 after cmake is finished enter: make step 3 now enter: sudo make install after this log4cplus files ,which you need to Link in your IDE are installed in /usr/local/include/log4cplus and /usr/local/liblog4cplus.so now you can close your terminal and you 're finshed For the ones who using cmake here is an example CMakeLists.txt ######################CMakeLists.txt############# cmake_minimum_required(VERSION 2.8) add_compile_options(-std=c++14) #project name project( Log4CPlusExample) set( CMAKE_C_FLAGS "-Wall -g" ) file(GLOB SRCS *.cpp *.h) set(LOG4CPLUS_INCLUDE_DIR /usr/local/include/log4cplus) set(LOG4PLUS_LIBRARY /usr/local/lib/liblog4cplus.so) add_executable( Log4CPlusExample ${SRCS} ) include_directories( ${LOG4CPLUS_INCLUDE_DIR} ) target_link_libraries(Log4CPlusExample ${LOG4PLUS_LIBRARY} ) ################################################# Here is a small Hello World logger example #################MyLogger.h########################## /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /* * File: MyLogger.h * Author: yoymoyroy * * Created on 26. April 2017, 14:04 */ //my log header #ifndef MYLogger_H #define MYLogger_H #include <log4cplus/loggingmacros.h> //wichtig enthält alle wege wie ich einen Log Schreibe #include <log4cplus/consoleappender.h> #include <log4cplus/layout.h> #include <log4cplus/logger.h> //Consol appender static log4cplus::helpers::SharedObjectPtr<log4cplus::Appender> consoleAppender (new log4cplus::ConsoleAppender()); static std::string pattern = "%d{%m/%d/%y %H:%M:%S} - %m [%l]%n"; static std::auto_ptr<log4cplus::Layout> layout(new log4cplus::PatternLayout(pattern)); //logger static log4cplus::Logger logger = log4cplus::Logger::getInstance("Display"); #endif ############################################## ##############main.cpp###################### #include "MyLogger.h" using namespace log4cplus; using namespace log4cplus::helpers; int main() { consoleAppender->setName("ConsolAppender"); consoleAppender->setLayout(layout); logger.setLogLevel(ALL_LOG_LEVEL); logger.addAppender(consoleAppender); LOG4CPLUS_INFO(logger,"Hallo World!!"); } ######################################## thats it greedings from Germany!
  • When i use the AsyncAppender in V1.2.0, VS2010 had detected many memory leaks like this: {2713} normal block at 0x00000000039C3070, 40 bytes long. Data: <@ I > 40 8B 49 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2712} normal block at 0x00000000039BE0B0, 72 bytes long. Data: < @ @ > 08 EE 86 40 01 00 00 00 10 EE 86 40 01 00 00 00 {2711} normal block at 0x00000000039C1F40, 40 bytes long. Data: < I > E0 8A 49 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2710} normal block at 0x00000000039BE000, 64 bytes long. Data: <(z @ 8z @ > 28 7A 87 40 01 00 00 00 38 7A 87 40 01 00 00 00 {2709} normal block at 0x00000000039C1ED0, 8 bytes long. Data: < > E4 01 00 00 00 00 00 00 {2708} normal block at 0x00000000039BDA00, 8 bytes long. Data: < > E0 01 00 00 00 00 00 00 {2707} normal block at 0x00000000039C1E40, 40 bytes long. Data: < I > 80 8A 49 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2706} normal block at 0x00000000039BF370, 16 bytes long. Data: < > 18 A2 9B 03 00 00 00 00 00 00 00 00 00 00 00 00 {2705} normal block at 0x00000000039BF2E0, 40 bytes long. Data: < I > 20 8A 49 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2704} normal block at 0x00000000039BA210, 112 bytes long. Data: < @ p > B8 C4 87 40 01 00 00 00 70 F3 9B 03 00 00 00 00 {2701} normal block at 0x00000000039B9300, 8 bytes long. Data: < > 00 00 00 00 00 00 00 00 {2309} normal block at 0x00000000039C1DC0, 16 bytes long. Data: < > 80 A4 9B 03 00 00 00 00 00 00 00 00 00 00 00 00 {2308} normal block at 0x00000000039C1D30, 40 bytes long. Data: <p=E > 70 3D 45 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2307} normal block at 0x00000000039C1CB0, 16 bytes long. Data: < - @ > 88 2D 87 40 01 00 00 00 01 CD CD CD CD CD CD CD {2306} normal block at 0x00000000039C0E70, 16 bytes long. Data: < > 18 A4 9B 03 00 00 00 00 00 00 00 00 00 00 00 00 {2305} normal block at 0x00000000039C0DF0, 16 bytes long. Data: < @ @ > 90 8C 87 40 01 00 00 00 40 06 9B 03 00 00 00 00 {2304} normal block at 0x00000000039BA540, 40 bytes long. Data: <P<E > 50 3C 45 00 00 00 00 00 FF FF FF FF 00 00 00 00 {2303} normal block at 0x00000000039BA400, 208 bytes long. Data: < | @ H| @ > 08 7C 87 40 01 00 00 00 48 7C 87 40 01 00 00 00
  • Agree with kyberuserid..., I used this API in a project with hopes that it would simplify my task of development, but it didn't... Worked in native win32/x64 version of the application that uses it, but when called from managed code that uses the native version of application dll it throws scheduler_resource_allocation_error. So I'm going to consider looking for something else, maybe Pantheios - I'm back to square one after all that bloody hard work only to discover that I can't make a release because it fails with .NET
  • Thanks for good program!
    1 user found this review helpful.
  • Thanks for good program!
    1 user found this review helpful.
  • I compile static lib with my project (Visual Studio 2010), but linking error! --------------------------------------------------------------------------- 1>ClCompile: 1> All outputs are up-to-date. 1>ManifestResourceCompile: 1> All outputs are up-to-date. 1>log4cplusSD.lib(factory.obj) : error LNK2019: unresolved external symbol "public: __thiscall log4cplus::SysLogAppender::SysLogAppender(class log4cplus::helpers::Properties const &)" (??0SysLogAppender@log4cplus@@QAE@ABVProperties@helpers@1@@Z) referenced in function "public: virtual class log4cplus::helpers::SharedObjectPtr<class log4cplus::Appender> __thiscall log4cplus::spi::FactoryTempl<class log4cplus::SysLogAppender,class log4cplus::spi::AppenderFactory>::createObject(class log4cplus::helpers::Properties const &)" (?createObject@?$FactoryTempl@VSysLogAppender@log4cplus@@VAppenderFactory@spi@2@@spi@log4cplus@@UAE?AV?$SharedObjectPtr@VAppender@log4cplus@@@helpers@3@ABVProperties@53@@Z) 1>D:\Projects\AutoTradeSystem\Bin\Win32\Debug\Backtest.exe : fatal error LNK1120: 1 unresolved externals 1> 1>Build FAILED.
  • Wouldn't it be better to move the project to github? Or at least provide official mirror?
    1 user found this review helpful.
  • Good. But do not remove the old solutions for previous versions Visual Studio.
  • Superb!)
  • the best, just works
  • Great software Well-Known Myths As Opposed To The Accurate Pieces Of Information
  • This is an excellent tool. I have used it for a while now and I have had no issues.
  • Extremely Versatile - Available Cross-Platform
  • Exxcellent program. Thanks all developers.
  • Easy to learn and use interface
  • Excellent work.
  • Thanks for a good library! Easy to modify and nice architecture.
    1 user found this review helpful.
  • log4cplus is a good competitor. It is for c++, I write a pure c logging library, which is quite fast and flexsible, but is not so big to a "framework". It is zlog, pls try~~ https://github.com/HardySimpson/zlog
  • Great library. I like it better (used to use log4cxx).
  • Great library, thank you for this project!
  • Great library! I used Pantheios before, but (being very fast and extendable, though) it hasn't "multiple loggers" feature, while it's quite a "must have" one. The 'log4cplus' lets me log different functionality domains via different loggers, which logging levels can be managed run-time. It means that when my end-user found some hard-to-track issue in my software, I can say him "please open config-file and turn on the logging port A at TRACE level, the logging port B at ERROR level, and left all other logging ports off". This is typical real-life logging use-case, and 'log4cplus' does it great.
  • Easy to modify. Good architecture. Thank you.
  • I hate this ugly piece of crap. Was going to use it on Windows because log4cpp doesn't work there and logcxx is an overblown monster. This one is especially nasty having absorbed a welter of ugly hacks over the decade since the original author jettisoned it. The hacks are totally undocumented and the most you can find are amateurish write-ups at random web pages. Usable but only by painful reading of its sources and inference of what a c++ log4j is supposed to be doing. Says more about C++ than I ever could with words. Decided to just gut the whole thing and roll my own simple sprintf based logger in disgust.
  • We've had log4j in production for 3 years without incident, in a high-performance engine.
Show next 25 reviews >