Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Update: Forum Guidelines & Code of Conduct

    Solved Multiple instances of log4cpp in Qt

    3rd Party Software
    2
    2
    1535
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • yuvaram
      yuvaram last edited by A Former User

      Hi ,

      In my project there are multiple module, need different log files for each module in different folders. I have created multiple instances of log4cpp. But logs are appending only into single file of last instance created.

      Please let me know, can we create multiple instances of log4cpp.
      Verified object names using setObjectName() and Objectname(), all object names are different.
      Thank you in advance.

      Yuvaram Aligeti
      Embedded Qt Developer
      : )

      jsulm 1 Reply Last reply Reply Quote 0
      • jsulm
        jsulm Lifetime Qt Champion @yuvaram last edited by jsulm

        @yuvaram How is your question related to Qt?
        On the project page (http://log4cpp.sourceforge.net/) there is an example logging to two different targets: console and a file:

        int main(int argc, char** argv) {
        	log4cpp::Appender *appender1 = new log4cpp::OstreamAppender("console", &std::cout);
        	appender1->setLayout(new log4cpp::BasicLayout());
        
        	log4cpp::Appender *appender2 = new log4cpp::FileAppender("default", "program.log");
        	appender2->setLayout(new log4cpp::BasicLayout());
        
        	log4cpp::Category& root = log4cpp::Category::getRoot();
        	root.setPriority(log4cpp::Priority::WARN);
        	root.addAppender(appender1);
        
        	log4cpp::Category& sub1 = log4cpp::Category::getInstance(std::string("sub1"));
        	sub1.addAppender(appender2);
        
        	// use of functions for logging messages
        	root.error("root error");
        	root.info("root info");
        	sub1.error("sub1 error");
        	sub1.warn("sub1 warn");
        
        	// printf-style for logging variables
        	root.warn("%d + %d == %s ?", 1, 1, "two");
        
        	// use of streams for logging messages
        	root << log4cpp::Priority::ERROR << "Streamed root error";
        	root << log4cpp::Priority::INFO << "Streamed root info";
        	sub1 << log4cpp::Priority::ERROR << "Streamed sub1 error";
        	sub1 << log4cpp::Priority::WARN << "Streamed sub1 warn";
        
        	// or this way:
        	root.errorStream() << "Another streamed error";
        
        	return 0;
        }
        

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply Reply Quote 2
        • First post
          Last post