<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hi,</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
I am happy to announce that version 4.9.0 of syslog-ng is now available. Thanks everyone who contributed code, documentation, testing, or in any other way.</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Peter</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<b>4.9.0</b></div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<b>Highlights</b></div>
<ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>stats-exporter</code>: Added two new sources,
<code>stats-exporter()</code> and <code>stats-exporter-dont-log()</code>, which directly serve the output of
<code>syslog-ng-ctl stats</code> and <code>syslog-ng-ctl query</code> to a http scraper. The only difference is that
<code>stats-exporter-dont-log()</code> suppresses log messages from incoming scraper requests, ensuring no messages appear in the log path. Meanwhile,
<code>stats-exporter()</code> logs unparsed messages, storing incoming scraper HTTP requests in the
<code>MSG</code> field.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Example usage for a Prometheus Scraper which logs the HTTP request of the scraper to /var/log/scraper.log:</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>@version: 4.9
@include "scl.conf"

source s_prometheus_stat {
    stats-exporter(
        ip("0.0.0.0")
        port(8080)
        stat-type("query")
        stat-query("*")
        scrape-freq-limit(30)
        single-instance(yes)
    );
};

log {
    source(s_prometheus_stat);
    destination { file(/var/log/scraper.log); };
};
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Example usage for a generic HTTP Scraper which sends e.g. the
<code>GET /stats HTTP/1.1</code> HTTP request to get statistics of syslog-ng, do not want to log or further process the HTTP requests in the log pipe, and needs the response in CSV format:</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>@version: 4.9
@include "scl.conf"

source s_scraper_stat {
    stats-exporter-dont-log(
        ip("0.0.0.0")
        port(8080)
        stat-type("stats")
        stat-format("csv")
        scrape-pattern("GET /stats*")
        scrape-freq-limit(30)
        single-instance(yes)
    );
};

log {
    source(s_scraper_stat);
};
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Note: A destination is not required for this to work; the
<code>stats-exporter()</code> source will respond to the scraper regardless of whether a destination is present in the log path.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Available options:</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>stat-type(string)</code> -
<code>query</code> or <code>stats</code>, just like for the <code>syslog-ng-ctl</code> command line tool, see there for the details<br>
<code>stat-query(string)</code> - the query regex string that can be used to filter the output of a
<code>query</code> type request<br>
<code>stat-format(string)</code> - the output format of the given stats request, like the
<code>-m</code> option of the <code>syslog-ng-ctl</code> command line tool<br>
<code>scrape-pattern(string)</code> – the pattern used to match the HTTP header of incoming scraping requests. A stat response will be generated and sent only if the header matches the pattern string<br>
<code>scrape-freq-limit(non-negative-int)</code> - limits the frequency of repeated scraper requests to the specified number of seconds. Any repeated request within this period will be ignored. A value of 0 means no limit<br>
<code>single-instance(yes/no)</code> - if set to <code>yes</code> only one scraper connection and request will be allowed at once<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5259/hovercard" class="OWAAutoLink" id="OWA914d3223-3ae6-fcea-2932-f914391330d7" href="https://github.com/syslog-ng/syslog-ng/pull/5259">#5259</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>syslog()</code> source driver: add support for RFC6587 style auto-detection of<br>
octet-count based framing to avoid confusion that stems from the sender<br>
using a different protocol to the server. This behaviour can be enabled<br>
by using <code>transport(auto)</code> option for the <code>syslog()</code> source.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5322/hovercard" class="OWAAutoLink" id="OWAea867262-821a-c94b-9a2a-db360bcd9f40" href="https://github.com/syslog-ng/syslog-ng/pull/5322">#5322</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>wildcard-file</code>: Added inotify-based regular file change detection using the existing inotify-based directory monitor.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">This improves efficiency on OSes like Linux, where only polling was available before, significantly reducing CPU usage while enhancing change detection accuracy.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">To enable this feature, inotify kernel support is required, along with
<code>monitor-method()</code> set to <code>inotify</code> or <code>auto</code>, and
<code>follow-freq()</code> set to 0.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5315/hovercard" class="OWAAutoLink" id="OWAf2e3137f-1c1d-b053-15c8-b08cece13990" href="https://github.com/syslog-ng/syslog-ng/pull/5315">#5315</a>)</div>
</li></ul>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<b>Features</b></div>
<ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>cisco</code>: Added support for Cisco Nexus NXOS 9.3 syslog format.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">The parser now recognises NXOS 9.3 timestamps in
<code>YYYY MMM DD HH:MM:SS</code> format and handles the different<br>
sequence number prefix (<code>: </code>instead of <code>seqno: </code>) used by NXOS 9.3 compared to traditional IOS formats.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Example Cisco configuration:</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Example syslog-ng configuration:</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>@include "scl.conf"

source s_cisco {
    network(ip(0.0.0.0) transport("udp") port(2000) flags(no-parse));
};

parser p_cisco {
    cisco-parser();
};

destination d_placeholder {
    # Define your destination here
};

log {
    source(s_cisco);
    parser(p_cisco);
    destination(d_placeholder);
};
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">(<a data-hovercard-type="issue" data-hovercard-url="/syslog-ng/syslog-ng/issues/5412/hovercard" class="OWAAutoLink" id="OWAce240cde-6385-28e9-3603-e247f105acfb" href="https://github.com/syslog-ng/syslog-ng/pull/5412">#5412</a>)</div>
</li><ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
NXOS: <code>(config)# logging server <syslog-ng-server-ip> port 2000</code></li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
IOS: <code>(config)# logging host <syslog-ng-server-ip> transport udp port 2000</code></li></ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">bigquery(), google-pubsub-grpc(): Added service-account() authentication option.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Example usage:</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>destination {
    google-pubsub-grpc(
        project("test")
        topic("test")
        auth(service-account(key ("path_to_service_account_key.json")))
    );
};
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Note: In contrary to the
<code>http()</code> destination's similar option,<br>
we do not need to manually set the audience here as it is<br>
automatically recognized by the underlying gRPC API.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5270/hovercard" class="OWAAutoLink" id="OWA9ecdd0ae-5380-241a-436a-d3608224e8bd" href="https://github.com/syslog-ng/syslog-ng/pull/5270">#5270</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">gRPC based destinations: Added
<code>response-action()</code> option</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">With this option, it is possible to fine tune how syslog-ng<br>
behaves in case of different gRPC results.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Supported by the following destination drivers:</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Supported gRPC results:</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Supported actions:</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Usage:</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>google-pubsub-grpc(
  project("my-project")
  topic("my-topic")
  response-action(
    not-found => disconnect
    unavailable => drop
  )
);
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5332/hovercard" class="OWAAutoLink" id="OWAda4d7b0b-c979-f5bb-42fd-256728865238" href="https://github.com/syslog-ng/syslog-ng/pull/5332">#5332</a>)</div>
</li><ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>opentelemetry()</code></li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>loki()</code></li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>bigquery()</code></li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>clickhouse()</code></li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>google-pubsub-grpc()</code></li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
ok</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
unavailable</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
cancelled</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
deadline-exceeded</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
aborted</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
out-of-range</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
data-loss</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
unknown</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
invalid-argument</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
not-found</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
already-exists</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
permission-denied</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
unauthenticated</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
failed-precondition</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
unimplemented</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
internal</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
resource-exhausted</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
disconnect</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
drop</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
retry</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
success</li></ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>s3</code>: Added two new options</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Example:</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>s3(
        url("http://localhost:9000")
        bucket("testbucket")
        object_key("testobject")
        access_key("<ACCESS_KEY_ID>")
        secret_key("<SECRET_ACCESS_KEY>")
        content_type("text/plain")
        use_checksum("when_required")
);
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5286/hovercard" class="OWAAutoLink" id="OWA36d4dc80-2ae4-5db6-0688-af2fba204ff7" href="https://github.com/syslog-ng/syslog-ng/pull/5286">#5286</a>)</div>
</li><ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>content-type()</code>: users now can change the content type of the objects uploaded by syslog-ng.</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>use_checksum()</code>: This option allows the users to change the default checksum settings for<br>
S3 compatible solutions that don't support checksums. Requires botocore 1.36 or above. Acceptable values are<br>
<code>when_supported</code> (default) and <code>when_required</code>.</li></ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>loki()</code>: Added
<code>batch-bytes()</code> and <code>compression()</code> options.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5174/hovercard" class="OWAAutoLink" id="OWAc2aab7f1-dea2-9fea-a087-092c601ca57c" href="https://github.com/syslog-ng/syslog-ng/pull/5174">#5174</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>syslog-ng-ctl</code>: Formatting the output of the
<code>syslog-ng-ctl stats</code> and <code>syslog-ng-ctl query</code> commands is unified.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Both commands got a new
<code>--format</code> (<code>-m</code>) argument that can control the output format of the given stat or query. The following formats are supported:</div>
</li><ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>kv</code> - the legacy key-value-pairs e.g. <code>center.queued.processed=0</code> (only for the
<code>query</code> command yet)</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>csv</code> - comma separated values e.g. <code>center;;queued;a;processed;0</code></li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>prometheus</code> - the prometheus scraper ready format e.g. <code>syslogng_center_processed{stat_instance="queued"} 0</code><br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5248/hovercard" class="OWAAutoLink" id="OWA40f2909f-74ff-4255-2acd-5337a0d4fbcc" href="https://github.com/syslog-ng/syslog-ng/pull/5248">#5248</a>)</li></ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>network()</code>,
<code>syslog()</code> sources: add <code>$PEERIP</code> and <code>$PEERPORT</code> macros</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">The <code>$PEERIP</code> and
<code>$PEERPORT</code> macros always display the address and port of the direct sender.<br>
In most cases, these values are identical to <code>$SOURCEIP</code> and <code>$SOURCEPORT</code>.<br>
However, when dealing with proxied protocols, <code>$PEERIP</code> and <code>$PEERPORT</code> reflect the proxy's address and port,<br>
while <code>$SOURCEIP</code> and <code>$SOURCEPORT</code> indicate the original source of the message.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5291/hovercard" class="OWAAutoLink" id="OWAf289299f-d5ee-1a5d-5798-3ee6cb861747" href="https://github.com/syslog-ng/syslog-ng/pull/5291">#5291</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>webhook()</code>,<code>opentelemetry()</code> sources: support
<code>input_event_bytes</code> metrics<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5324/hovercard" class="OWAAutoLink" id="OWAc63b47c5-3ed2-0498-51ed-380492b9d534" href="https://github.com/syslog-ng/syslog-ng/pull/5324">#5324</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>freebsd-audit()</code>: added a simple source SCL to collect FreeBSD audit logs using the built-in praudit program</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><a rel="nofollow" class="OWAAutoLink" id="OWAdcb71d5a-e054-0dc7-effc-da62fe16a5fd" href="https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-syslog-ng">https://www.syslog-ng.com/community/b/blog/posts/freebsd-audit-source-for-syslog-ng</a><br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5383/hovercard" class="OWAAutoLink" id="OWA08390551-c338-0ea4-30a8-f4e9607cd718" href="https://github.com/syslog-ng/syslog-ng/pull/5383">#5383</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>webhook()</code>: headers support</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>include-request-headers(yes)</code> stores request headers under the
<code>${webhook.headers}</code> key, allowing further processing</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>proxy-header("x-forwarded-for")</code> helps retain the sender's original IP and the proxy's IP address</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">(<code>$SOURCEIP</code>,
<code>$PEERIP</code>).<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5333/hovercard" class="OWAAutoLink" id="OWAab2a3357-e1e6-304c-1f2c-4d81e00b1bc8" href="https://github.com/syslog-ng/syslog-ng/pull/5333">#5333</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>check-program</code>: Introduced as a flag for global or source options.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">By default, this flag is set to false. Enabling the check-program flag triggers
<code>program</code> name validation for <code>RFC3164</code> messages. Valid <code>
program</code> names must adhere to the following criteria:</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Contain only these characters:
<code>[a-zA-Z0-9-_/().]</code><br>
Include at least one alphabetical character.<br>
If a <code>program</code> name fails validation, it will be considered part of the log message.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Example:</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>source { network(flags(check-hostname, check-program)); };
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5264/hovercard" class="OWAAutoLink" id="OWA91019089-851a-ccd3-756d-c50861e356a9" href="https://github.com/syslog-ng/syslog-ng/pull/5264">#5264</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>syslog(transport(proxied-*))</code> and
<code>network(transport(proxied-*))</code>: changed<br>
where HAProxy transport saved the original source and destination addresses.<br>
Instead of using dedicated <code>PROXIED_*</code> name-value pairs, use the usual<br>
<code>$SOURCEIP</code>, <code>$SOURCEPORT</code>, <code>$DESTIP</code> and <code>
$DESTPORT</code> macros, making haproxy<br>
based connections just like native ones.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>$SOURCEPORT</code>: added new macro which expands to the source port of the peer.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5305/hovercard" class="OWAAutoLink" id="OWA62b757c9-75bc-823c-cc7c-c43c31a3023f" href="https://github.com/syslog-ng/syslog-ng/pull/5305">#5305</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>opentelemetry()</code>,
<code>syslog-ng-otlp()</code>: Added <code>keep-alive()</code> options.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Keepalive can be configured with the
<code>time()</code>, <code>timeout()</code><br>
and <code>max-pings-without-data()</code> options of the <code>keep-alive()</code> block.</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>opentelemetry(
    ...
    keep-alive(time(20000) timeout(10000) max-pings-without-data(0))
);
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5174/hovercard" class="OWAAutoLink" id="OWAba20a04c-8b7e-10aa-8396-01f29e028d65" href="https://github.com/syslog-ng/syslog-ng/pull/5174">#5174</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>bigquery()</code>: Added
<code>auth()</code> options.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Similarly to other gRPC based destination drivers, the
<code>bigquery()</code><br>
destination now accepts different authentication methods, like<br>
<code>adc()</code>, <code>alts()</code>, <code>insecure()</code> and <code>tls()</code>.</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>bigquery (
    ...
    auth(
        tls(
            ca-file("/path/to/ca.pem")
            key-file("/path/to/key.pem")
            cert-file("/path/to/cert.pem")
        )
    )
);
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5174/hovercard" class="OWAAutoLink" id="OWA51685e85-9635-4b10-39be-4b84ce513943" href="https://github.com/syslog-ng/syslog-ng/pull/5174">#5174</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>cloud-auth</code>: Added
<code>azure-monitor()</code> destination</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Added oauth2 authentication for azure monitor destinations.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Example usage:</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>azure-monitor(
     dcr-id("dcr id")
     dce-uri("dce uri")
     stream_name("stream name")
     auth(
          tenant-id("tenant id")
          app-id("app id")
          app-secret("app secret")
     )
)
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5293/hovercard" class="OWAAutoLink" id="OWAaf98083e-64ea-b5bc-6741-a82863e322f5" href="https://github.com/syslog-ng/syslog-ng/pull/5293">#5293</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>multi-line-mode()</code>: Added a new mutiline detection mode
<code>empty-line-separated</code> that, as its name suggests, reads and treats all messages as one till it receives an empty line (which contains only a
<code>\r</code>, <code>\n</code> or <code>\r\n</code> sequence).<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5259/hovercard" class="OWAAutoLink" id="OWAcc3d18fa-68ec-49fa-b84d-3c2125b61b40" href="https://github.com/syslog-ng/syslog-ng/pull/5259">#5259</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>google-pubsub-grpc()</code>: Added a new destination that sends logs to Google Pub/Sub via the gRPC interface.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Example config:</div>
<pre role="presentation"><div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif;"><code>google-pubsub-grpc(
  project("my_project")
  topic($topic)

  data($MESSAGE)
  attributes(
    timestamp => $S_ISODATE,
    host => $HOST,
  )

  workers(4)
  batch-timeout(1000) # ms
  batch-lines(1000)
);
</code></div></pre>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">The <code>project()</code> and
<code>topic()</code> options are templatable.<br>
The default service endpoint can be changed with the <code>service_endpoint()</code> option.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5266/hovercard" class="OWAAutoLink" id="OWAc2b4646d-b50b-023f-0f62-45485dcb937e" href="https://github.com/syslog-ng/syslog-ng/pull/5266">#5266</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>ivykis</code>: We have switched to
<a class="OWAAutoLink" id="OWA233cb61c-47ff-a10f-f428-ccc795575d7a" href="https://github.com/balabit/ivykis">
our own fork</a> of ivykis as the source for builds when using syslog-ng’s internal ivykis option (<code>--with-ivykis=internal</code> in autotools or
<code>-DIVYKIS_SOURCE=internal</code> in CMake).</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">We recommend switching to this internal version, as it includes new features not available in the
<a class="OWAAutoLink" id="OWA264c2212-7150-53ca-3bd9-33fbb55fd0ce" href="https://github.com/buytenh/ivykis">
original version</a> and likely never will be.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5307/hovercard" class="OWAAutoLink" id="OWAac3d0cb5-8439-1407-e710-2843e164ecdf" href="https://github.com/syslog-ng/syslog-ng/pull/5307">#5307</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>ivykis</code>: Fixed and merged the in development phase
<code>io_uring</code> based polling method solution to <a class="OWAAutoLink" id="OWA7755c6de-38f7-6bc3-ad4b-7727a086214b" href="https://github.com/balabit/ivykis">
our ivykis fork</a>.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">This is am experimental integration and not selected by default, you must activate it directly either using the
<code>IV_EXCLUDE_POLL_METHOD</code> or <code>IV_SELECT_POLL_METHOD</code> as described
<a rel="nofollow" class="OWAAutoLink" id="OWA46aeffe3-c0e8-fd6a-cbc5-e6fc561ecb15" href="https://syslog-ng.github.io/admin-guide/060_Sources/020_File/001_File_following">
here</a>.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5312/hovercard" class="OWAAutoLink" id="OWAb3c8fc2e-44d3-11ed-aa1e-4f07bb5a2c99" href="https://github.com/syslog-ng/syslog-ng/pull/5312">#5312</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>file()</code>,
<code>wildcard-file()</code>: Added <code>follow-method()</code> option.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">|Accepted values:| legacy | inotify | poll | system |</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">This option controls how syslog-ng will follow file changes.<br>
The default <code>legacy</code> mode preserves the pre-4.9 version file follow-mode behavior of syslog-ng, which is based on the value of follow-freq().<br>
The <code>poll</code> value forces syslog-ng to poll for file changes at the interval specified by the monitor-freq() option, even if a more efficient method (such as
<code>inotify</code> or <code>kqueue</code>) is available.<br>
If <code>inotify</code> is selected and supported by the platform, syslog-ng uses it to detect changes in source files. This is the most efficient and least resource-consuming option available on Linux for regular files.<br>
The <code>system</code> value will use system poll methods (via ivykis) like <code>
port-timer</code> <code>port</code> <code>dev_poll</code> <code>epoll-timerfd</code>
<code>epoll</code> <code>kqueue</code> <code>ppoll</code> <code>poll</code> and <code>
uring</code>. For more information about how to control the system polling methods used, see
<a rel="nofollow" class="OWAAutoLink" id="OWA3c099903-1e7d-eb88-5e6f-91b6bed10048" href="https://syslog-ng.github.io/admin-guide/060_Sources/020_File/001_File_following">
How content changes are followed in file() and wildcard-file() sources</a>.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5338/hovercard" class="OWAAutoLink" id="OWA47219dcc-99bc-bb2d-cddd-0e4ca81eebb3" href="https://github.com/syslog-ng/syslog-ng/pull/5338">#5338</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>opentelemetry()</code>,
<code>loki()</code> destination: Add support for templated <code>header()</code> values<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5184/hovercard" class="OWAAutoLink" id="OWA4491306e-22c5-b29c-3b9f-61b6cfaf15e7" href="https://github.com/syslog-ng/syslog-ng/pull/5184">#5184</a>)</div>
</li></ul>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<b>Bugfixes</b></div>
<ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>syslog-ng-otlp()</code> destination: Fixed a crash.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5267/hovercard" class="OWAAutoLink" id="OWA8fefd32d-3eae-69f0-ffe2-8eba681d665c" href="https://github.com/syslog-ng/syslog-ng/pull/5267">#5267</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">Fixed some time parsing and time formatting issues.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5386/hovercard" class="OWAAutoLink" id="OWA2af8b2bd-9899-0140-a563-435a9ba1c972" href="https://github.com/syslog-ng/syslog-ng/pull/5386">#5386</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">syslogformat: Fix integer overflow on set pri<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5254/hovercard" class="OWAAutoLink" id="OWA8d785fe1-4751-c148-a0c1-04d60dd359b9" href="https://github.com/syslog-ng/syslog-ng/pull/5254">#5254</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>network(), syslog()</code>: Fixed a potential crash for TLS destinations during reload</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">In case of a TLS connection, if the handshake didn't happen before reloading syslog-ng,<br>
it crashed on the first message sent to that destination.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5303/hovercard" class="OWAAutoLink" id="OWAe25c2ec5-6740-7a80-26c6-9454aaf6b84d" href="https://github.com/syslog-ng/syslog-ng/pull/5303">#5303</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>collectd()</code>: fix not reading server responses<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5390/hovercard" class="OWAAutoLink" id="OWA1105d838-4c15-e46c-bdd0-77c7c7507b9b" href="https://github.com/syslog-ng/syslog-ng/pull/5390">#5390</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">metrics: <code>
syslog-ng-ctl --reset</code> will no longer reset Prometheus metrics<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5261/hovercard" class="OWAAutoLink" id="OWA83cbd238-8262-04c6-7d39-5189ba255e56" href="https://github.com/syslog-ng/syslog-ng/pull/5261">#5261</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>rate-limit()</code>: fix precision issue that could occur at a very low message rate<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5346/hovercard" class="OWAAutoLink" id="OWA92506a95-2e83-67e7-75f2-2e23c08bcb1b" href="https://github.com/syslog-ng/syslog-ng/pull/5346">#5346</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>network()</code>,
<code>syslog()</code> sources and destinations: fix TCP/TLS shutdown<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5271/hovercard" class="OWAAutoLink" id="OWA6ba6f48d-60af-16f9-ce38-2e53693822a9" href="https://github.com/syslog-ng/syslog-ng/pull/5271">#5271</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>http</code>: Fixed a batching related bug that happened with templated URLs and a single worker.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5281/hovercard" class="OWAAutoLink" id="OWAc0e8fefe-e27d-3da5-7dc2-51ad3a13e6dc" href="https://github.com/syslog-ng/syslog-ng/pull/5281">#5281</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;"><code>network()</code>,
<code>syslog()</code> destinations: handle async TLS messages (KeyUpdate, etc.)<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5390/hovercard" class="OWAAutoLink" id="OWAa3ac4307-be78-9f95-5a76-215786dceea8" href="https://github.com/syslog-ng/syslog-ng/pull/5390">#5390</a>)</div>
</li></ul>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<b>Notes to developers</b></div>
<ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
editorconfig: configure supported editors for the project's style<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5331/hovercard" class="OWAAutoLink" id="OWA9f0200a4-f993-a914-a057-8613ce61c2f4" href="https://github.com/syslog-ng/syslog-ng/pull/5331">#5331</a>)</li></ul>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<b>Other changes</b></div>
<ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">java-modules: Upgrade java
<code>common</code> and <code>hdfs</code> dependencies.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5366/hovercard" class="OWAAutoLink" id="OWAcd69fd17-3f48-b8ef-bc12-5778fecd3f06" href="https://github.com/syslog-ng/syslog-ng/pull/5366">#5366</a>)</div>
</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">java-modules: Remove depricated java destinations:
<code>elasticsearch2</code>, <code>kafka-java</code> and the <code>java-http</code>.</div>
<div role="presentation" style="margin-top: 1em; margin-bottom: 1em;">The following destinations can be used instead:</div>
</li><ul>
<li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>elasticsearch2</code> - Both <a rel="nofollow" class="OWAAutoLink" id="OWA55162fde-0d2c-2281-4aea-59918504f674" href="https://syslog-ng.github.io/admin-guide/070_Destinations/035_elasticsearch-datastream/README">
elastic-datastream()</a> or the <a rel="nofollow" class="OWAAutoLink" id="OWAc3d2fc4c-a269-a5c8-9f44-4f032b192f07" href="https://syslog-ng.github.io/admin-guide/070_Destinations/030_Elasticsearch-http/README">
elastic-http()</a> can be used.</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>kafka-java</code> - The C based <a rel="nofollow" class="OWAAutoLink" id="OWAb563cc7a-8d37-8589-73e0-65ae2d9dec46" href="https://syslog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/README">
kafka-c()</a> destination can be used instead. To help with migration check out the
<a rel="nofollow" class="OWAAutoLink" id="OWA74dd0b3c-1e2e-922c-aa1a-487a8c7ef353" href="https://syslog-ng.github.io/admin-guide/070_Destinations/100_Kafka-c/001_Shifting_from_Java_to_C">
Shifting from Java implementation to C implementation</a> page.</li><li style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<code>java-http</code> - the C based <a rel="nofollow" class="OWAAutoLink" id="OWAd8cafee0-14ab-303c-81f1-1d0b5a7c0128" href="https://syslog-ng.github.io/admin-guide/070_Destinations/081_http/README">
http()</a> destination can be used.<br>
(<a data-hovercard-type="pull_request" data-hovercard-url="/syslog-ng/syslog-ng/pull/5366/hovercard" class="OWAAutoLink" id="OWAb261075a-781e-6fd0-9215-4e3a40933aba" href="https://github.com/syslog-ng/syslog-ng/pull/5366">#5366</a>)</li></ul>
</ul>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<b>Credits</b></div>
<div class="elementToProof" style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
syslog-ng is developed as a community project, and as such it relies<br>
on volunteers, to do the work necessarily to produce syslog-ng.</div>
<div class="elementToProof" style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Reporting bugs, testing changes, writing code or simply providing<br>
feedback are all important contributions, so please if you are a user<br>
of syslog-ng, contribute.</div>
<div class="elementToProof" style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
We would like to thank the following people for their contribution:</div>
<div class="elementToProof" style="margin-top: 1em; margin-bottom: 1em; font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Alex Becker, Attila Szakacs, Balazs Scheidler, Bálint Horváth,<br>
David Mandelberg, Eli Schwartz, Hofi, Kovács Gergő Ferenc,<br>
László Várady, Peter Czanik (CzP), Petr Vaganov,<br>
Shiraz, Szilard Parrag, Tamas Pal, Tamás Kosztyu, shifter</div>
<div style="font-family: Aptos, "Aptos_EmbeddedFont", "Aptos_MSFontService", Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div class="elementToProof" id="Signature">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div class="elementToProof" style="direction: ltr; font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Peter Czanik (CzP) <peter.czanik@oneidentity.com><br>
Balabit (a OneIdentity company) / syslog-ng upstream<br>
<a target="_blank" href="https://syslog-ng.com/community/">https://syslog-ng.com/<wbr>community/</a><br>
<a target="_blank" href="https://twitter.com/PCzanik">https://twitter.com/PCzanik</a></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
</div>
</body>
</html>