This is an automated email from the ASF dual-hosted git repository.

swebb2066 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git


The following commit(s) were added to refs/heads/master by this push:
     new 04518326 Benchmark should include the cost of buffered I/O (#358)
04518326 is described below

commit 04518326f7a0db532e736a7eaa0f6dd905215fd3
Author: Stephen Webb <[email protected]>
AuthorDate: Wed Mar 6 12:01:41 2024 +1100

    Benchmark should include the cost of buffered I/O (#358)
    
    * Include date in file output
---
 src/test/cpp/benchmark/benchmark.cpp | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/test/cpp/benchmark/benchmark.cpp 
b/src/test/cpp/benchmark/benchmark.cpp
index 1adca690..49df7fe1 100644
--- a/src/test/cpp/benchmark/benchmark.cpp
+++ b/src/test/cpp/benchmark/benchmark.cpp
@@ -134,11 +134,11 @@ public: // Class methods
        static LoggerPtr getAsyncLogger()
        {
                LogString name = LOG4CXX_STR("benchmark.fixture.async");
-               setDefaultAppender();
                auto r = LogManager::getLoggerRepository();
                LoggerPtr result = r->exists(name);
                if (!result)
                {
+                       setDefaultAppender();
                        auto writer = std::make_shared<net::SMTPAppender>();
                        
writer->setLayout(std::make_shared<PatternLayout>(LOG4CXX_STR("%m%n")));
                        auto asyncAppender = std::make_shared<AsyncAppender>();
@@ -155,7 +155,6 @@ public: // Class methods
        static LoggerPtr getFileLogger()
        {
                LogString name = LOG4CXX_STR("benchmark.fixture.file");
-               setDefaultAppender();
                auto r = LogManager::getLoggerRepository();
                LoggerPtr result;
                if (!(result = r->exists(name)))
@@ -163,8 +162,11 @@ public: // Class methods
                        result = r->getLogger(name);
                        result->setAdditivity(false);
                        result->setLevel(Level::getInfo());
-                       auto writer = 
std::make_shared<BenchmarkFileAppender>(std::make_shared<PatternLayout>(LOG4CXX_STR("%m%n")));
+                       auto writer = 
std::make_shared<BenchmarkFileAppender>(std::make_shared<PatternLayout>(LOG4CXX_STR("%d
 %m%n")));
                        writer->setName(LOG4CXX_STR("FileAppender"));
+                       writer->setBufferedIO(true);
+                       helpers::Pool p;
+                       writer->activateOptions(p);
                        result->addAppender(writer);
                }
                return result;
@@ -297,12 +299,12 @@ BENCHMARK_DEFINE_F(benchmarker, 
fileIntPlusFloatValueMessageBuffer)(benchmark::S
        for (auto _ : state)
        {
                auto f = static_cast<float>(rand()) / 
static_cast<float>(RAND_MAX);
-               LOG4CXX_INFO( m_logger, "Hello: message number " << ++x
+               LOG4CXX_INFO( m_fileLogger, "Hello: message number " << ++x
                        << " pseudo-random float " << std::setprecision(3) << 
std::fixed << f);
        }
 }
-BENCHMARK_REGISTER_F(benchmarker, 
fileIntPlusFloatValueMessageBuffer)->Name("Logging int+float using 
MessageBuffer, pattern: %m%n");
-BENCHMARK_REGISTER_F(benchmarker, 
fileIntPlusFloatValueMessageBuffer)->Name("Logging int+float using 
MessageBuffer, pattern: %m%n")->Threads(benchmarker::threadCount());
+BENCHMARK_REGISTER_F(benchmarker, 
fileIntPlusFloatValueMessageBuffer)->Name("Logging int+float using 
MessageBuffer, pattern: %d %m%n");
+BENCHMARK_REGISTER_F(benchmarker, 
fileIntPlusFloatValueMessageBuffer)->Name("Logging int+float using 
MessageBuffer, pattern: %d %m%n")->Threads(benchmarker::threadCount());
 
 BENCHMARK_MAIN();
 

Reply via email to