<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Christian Panov</title>
    <description>The latest articles on DEV Community by Christian Panov (@christianpanov).</description>
    <link>https://dev.to/christianpanov</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F551001%2F5175db76-6b0c-4d62-a4f9-0f18efff844e.png</url>
      <title>DEV Community: Christian Panov</title>
      <link>https://dev.to/christianpanov</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/christianpanov"/>
    <language>en</language>
    <item>
      <title>lwlog 1.5.0 Release</title>
      <dc:creator>Christian Panov</dc:creator>
      <pubDate>Mon, 29 Dec 2025 09:34:53 +0000</pubDate>
      <link>https://dev.to/christianpanov/lwlog-150-release-4l0b</link>
      <guid>https://dev.to/christianpanov/lwlog-150-release-4l0b</guid>
      <description>&lt;p&gt;Hello everyone,&lt;/p&gt;

&lt;p&gt;I want to share with you release 1.5.0 of a logging library that I have been working on for a couple of years now, on and off, between work and other projects. The logger is very fast and makes no heap allocations per log call. To achieve that, the logger uses several purpose-specific pre-allocated static buffers where everything is formatted in-place and memory is efficiently reused. It supports both synchronous and asynchronous logging. It's very configurable, so you can tailor it to your specific use case, including the sizes of the pre-allocated buffers I mentioned.&lt;/p&gt;

&lt;p&gt;The codebase is clean, and I believe it's well documented, so you'll find it relatively easy to follow and read.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Whats new since last release:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A lot of stability/edge-case issues have been fixed&lt;/li&gt;
&lt;li&gt;The logger is now available in vcpkg for easier integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What's left to do:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add Conan packaging&lt;/li&gt;
&lt;li&gt;Add FMT support(?)&lt;/li&gt;
&lt;li&gt;Update benchmarks for spdlog and add comparisons with more loggers(performance has improved a lot since the benchmarks shown in the readme)&lt;/li&gt;
&lt;li&gt;Rewrite pattern formatting(planned for 1.6.0, mostly done, see pattern_compiler branch, I plan to release it next month) - The pattern is parsed once by a tiny compiler, which then generates a set of bytecode instructions(literals, fields, color codes). On each log call, the logger executes these instructions, which produce the final message by appending the generated results from the instructions. This completely eliminates per-log call pattern scans, strlen calls, and memory shifts for replacing and inserting. This has a huge performance impact, making both sync and async logging even faster than they were.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I would be very honoured if you could take a look and share your critique, feedback, or any kind of idea. I believe the library could be of good use to you: &lt;a href="https://github.com/ChristianPanov/lwlog" rel="noopener noreferrer"&gt;https://github.com/ChristianPanov/lwlog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for your time and happy holidays,&lt;/p&gt;

&lt;p&gt;Chris&lt;/p&gt;

</description>
      <category>tooling</category>
      <category>showdev</category>
      <category>opensource</category>
      <category>performance</category>
    </item>
    <item>
      <title>C++ logging library - something I've been working on, Pt. 3 (Cross-post)</title>
      <dc:creator>Christian Panov</dc:creator>
      <pubDate>Mon, 25 Dec 2023 14:19:10 +0000</pubDate>
      <link>https://dev.to/christianpanov/c-logging-library-something-ive-been-working-on-pt-3-cross-post-25jn</link>
      <guid>https://dev.to/christianpanov/c-logging-library-something-ive-been-working-on-pt-3-cross-post-25jn</guid>
      <description>&lt;p&gt;Hello everyone,&lt;/p&gt;

&lt;p&gt;It's become sort of a tradition to make a post in a certain subreddit, exactly on that day each year, with an "update" on the library that I've been working on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;(2020) &lt;a href="https://www.reddit.com/r/cpp/comments/kj364n/c_logging_library_something_ive_been_working_on/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/cpp/comments/kj364n/c_logging_library_something_ive_been_working_on/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;(2021) &lt;a href="https://www.reddit.com/r/cpp/comments/rnwq2g/c_logging_library_something_ive_been_working_on/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/cpp/comments/rnwq2g/c_logging_library_something_ive_been_working_on/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;(2022) No update&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Unlike the previous years, as we grow older and wiser, I'm now aware that it's not going to be "finished" any time soon. However, I can present it to you at a mature enough stage where I can, from now on, shift my focus to another project that I have barely started working on - a graphics engine.&lt;/p&gt;

&lt;p&gt;A lot has happened in the past years. I got a job in the automotive industry and even got promoted recently, so It's all going well for me. And I want to thank you for the support until now and for the great critique and advice I've gotten on my previous posts about the logger, it has helped me so much for what it's worth.&lt;/p&gt;

&lt;p&gt;Anyway, I want to keep the post short and simple. So, why yet another logger? I've answered that in the documentation, but in short, I know it's the most banal project idea you've laid your eyes on recently, but in fact, it's actually an amazing learning experience. Depending on how deep you are willing to get to, writing a logger entails quite a lot of concepts, both deep language-specific knowledge and general computer science topics. If you were to ask me what's been the most pivotal project for my learning path, I would choose the logger instead of any half-baked graphics engine I've written in a heartbeat.&lt;/p&gt;

&lt;p&gt;As always, I would appreciate it If you check it out, write a critique, an opinion, or blatantly assault me, it's all welcomed if it's aimed towards improvement and perfection. Contributions are appreciated as well, of course:  &lt;a href="https://github.com/ChristianPanov/lwlog" rel="noopener noreferrer"&gt;https://github.com/ChristianPanov/lwlog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you find it interesting enough you could also star it, that would be appreciated.&lt;/p&gt;

&lt;p&gt;So what's been done since last year - overall rework and restructuring of the codebase, added asynchronous logging with the appropriate configurations that can be applied to it, which is probably the most notable of all changes, also added basic log message post formatting with fmt/std::format, depending on what you are using, which has been missing for a long time(such a basic feature, what a shame), and finally, comprehensive documentation overhaul. And quite a lot of other things in between, of course.&lt;/p&gt;

&lt;p&gt;While I'll be shifting my focus to a new project, I remain committed to maintaining and improving the logger. Upcoming plans include refining the CMake file and enhancing the file sink with file mapping.&lt;/p&gt;

&lt;p&gt;Thank you for your support and valuable feedback. Wishing you all happy holidays,&lt;/p&gt;

&lt;p&gt;Chris&lt;/p&gt;

</description>
    </item>
    <item>
      <title>C++ logging library - something I've been working on</title>
      <dc:creator>Christian Panov</dc:creator>
      <pubDate>Fri, 01 Jan 2021 00:07:05 +0000</pubDate>
      <link>https://dev.to/christianpanov/c-logging-library-something-i-ve-been-working-on-54b2</link>
      <guid>https://dev.to/christianpanov/c-logging-library-something-i-ve-been-working-on-54b2</guid>
      <description>&lt;p&gt;Hello everyone,&lt;/p&gt;

&lt;p&gt;I'm writing this post in regards to the logging library I am currently working on.&lt;/p&gt;

&lt;p&gt;It's design points are performance, configurability, feature-completeness and clean code.&lt;/p&gt;

&lt;p&gt;Features and usage examples of the library are present in the README in the repository, as well as features that are YET TO BE implemented.&lt;/p&gt;

&lt;p&gt;I have done benchmarks against spdlog, and you can take a look at them in the README.&lt;/p&gt;

&lt;p&gt;I would be very glad and honored if you drop a critique, an opinion, an idea, or want to contribute to the project:&lt;a href="https://github.com/ChristianPanov/lwlog" rel="noopener noreferrer"&gt;https://github.com/ChristianPanov/lwlog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, feel free to star the project if you find it interesting and of enough quality for usage, that way you will help it get shown to people more often.&lt;/p&gt;

&lt;p&gt;Thank you for your time and happy new year!&lt;/p&gt;

</description>
      <category>cpp</category>
    </item>
  </channel>
</rss>
