<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article Troubleshooting JSON parsing in Log module in Troubleshooting</title>
    <link>https://community.dynatrace.com/t5/Troubleshooting/Troubleshooting-JSON-parsing-in-Log-module/ta-p/300189</link>
    <description>&lt;H2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"&gt;Table of contents&lt;/H2&gt;
&lt;OL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#summary" target="_blank" rel="noopener"&gt;Summary&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#problem" target="_blank" rel="noopener"&gt;Problem&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#resolution" target="_blank" rel="noopener"&gt;Resolution&lt;/A&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#mixed-plain-text-and-json-entries-in-the-same-log-file" target="_blank" rel="noopener"&gt;Mixed plain-text and JSON entries in the same log file&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#timestamp-extracted-from-the-wrong-field" target="_blank" rel="noopener"&gt;Timestamp extracted from the wrong field&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#timestamp-in-a-non-standard-json-key" target="_blank" rel="noopener"&gt;Timestamp in a non-standard JSON key&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#unexpected-severity--log-level-values" target="_blank" rel="noopener"&gt;Unexpected severity/log level values&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#whats-next" target="_blank" rel="noopener"&gt;What's next&lt;/A&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;HR /&gt;
&lt;H2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"&gt;Summary&lt;/H2&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;This article helps you troubleshoot common issues with JSON log ingestion in Log module (deployed via OneAgent or Dynatrace Operator). It covers mixed plain-text and JSON log files, incorrect timestamp extraction, and incorrect severity mapping. It applies to SaaS and Managed environments on Linux and Windows.&lt;/P&gt;
&lt;H2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"&gt;Problem&lt;/H2&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Log Module supports JSON log ingestion, but parsing does not always behave as expected. Common symptoms include:&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;A log file contains both plain-text and JSON entries, and the JSON entries are reported individually in some places and merged with plain-text entries in others.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;A JSON log entry is ingested with the wrong timestamp, for example, a &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;created_at&lt;/CODE&gt; or &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;eventtime&lt;/CODE&gt; value is used instead of the entry's actual log time.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;A log entry uses a custom JSON field for its timestamp, but Log module doesn't pick it up.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Severity (log level) values in ingested logs don't match the values written by the application, for example, a &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;severity&lt;/CODE&gt; field set to &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;STATS&lt;/CODE&gt; appears in Dynatrace as &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;SEVERE&lt;/CODE&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"&gt;Resolution&lt;/H2&gt;
&lt;H3 class="text-text-100 mt-2 -mb-1 text-base font-bold"&gt;Mixed plain-text and JSON entries in the same log file&lt;/H3&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Symptoms&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;A log file or container stream contains both plain-text log lines and JSON objects.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;JSON entries are sometimes reported individually and sometimes merged with surrounding plain-text lines, depending on where in the file Log module began reading.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Behavior is inconsistent between agent restarts or rotations.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Cause&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Log Module does not support log files that mix plain-text and JSON entries without explicit guidance on where each entry begins. This is a known limitation.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Resolution&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Configure the &lt;STRONG&gt;Log entry boundary&lt;/STRONG&gt; setting so Log module knows where one entry ends and the next begins. You'll typically need one boundary pattern per entry type (one matching JSON entries, one matching plain-text entries).&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;For step-by-step configuration, see &lt;EM&gt;Troubleshooting log record boundary detection &amp;gt; Mixed plain text and JSON entries not separated correctly&lt;/EM&gt;.&lt;/P&gt;
&lt;HR /&gt;
&lt;H3 class="text-text-100 mt-2 -mb-1 text-base font-bold"&gt;Timestamp extracted from the wrong field&lt;/H3&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Symptoms&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;A JSON log entry is ingested with a timestamp that doesn't match its actual log time.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The misleading timestamp value matches a field elsewhere in the JSON payload (for example, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;eventtime&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;created_at&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;period_start&lt;/CODE&gt;).&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The log line contains plain-text content before the JSON object (a "prefix").&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Cause (brief)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When JSON parsing is turned on, Log module looks for the timestamp value in a predefined set of supported JSON keys. For the full list of supported keys, see &lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="https://docs.dynatrace.com/docs/analyze-explore-automate/logs/lma-log-ingestion/lma-log-ingestion-via-api/lma-ingest-json-txt-logs" target="_blank" rel="noopener"&gt;Ingest JSON and TXT logs&lt;/A&gt;. The same rules apply to OneAgent log ingestion.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When a plain-text prefix exists before the JSON object, the timestamp found in the prefix takes priority over any timestamp inside the JSON object. Plain-text content &lt;STRONG&gt;after&lt;/STRONG&gt; the closing &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;}&lt;/CODE&gt; (a "suffix") is not parsed, it's copied as-is into the log content.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Resolution&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;If the wrong timestamp is being picked from a prefix, adjust the application's log format so the prefix either contains the intended timestamp or contains no date-like string.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;If the wrong timestamp is being pulled from the JSON object, reorder the JSON so a supported timestamp key appears before any misleading fields.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;If neither option is possible, see &lt;EM&gt;Troubleshooting missing logs &amp;gt; Entries dropped — timestamp out of bounds&lt;/EM&gt; for additional workarounds, including disabling JSON parsing or defining an explicit timestamp pattern.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H3 class="text-text-100 mt-2 -mb-1 text-base font-bold"&gt;Timestamp in a non-standard JSON key&lt;/H3&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Symptoms&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The log entry contains a clearly recognizable timestamp inside the JSON payload, but Log module assigns a different (or auto-observed) timestamp.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The JSON key holding the timestamp is not on the &lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="https://docs.dynatrace.com/docs/analyze-explore-automate/logs/lma-log-ingestion/lma-log-ingestion-via-api/lma-ingest-json-txt-logs" target="_blank" rel="noopener"&gt;list of supported timestamp keys&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Resolution&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When JSON parsing is turned on, Log module only looks for timestamps in the predefined set of supported keys. A timestamp in a non-standard key is ignored.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;To extract the timestamp from a non-standard key:&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;STRONG&gt;Turn off JSON parsing&lt;/STRONG&gt; for this log source. Log Module will then scan the raw log line for a timestamp using configured patterns, allowing you to anchor on the non-standard field. Note: With JSON parsing turned off, JSON fields are no longer automatically extracted as log attributes; the line is ingested as a raw string.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Alternatively, ask the application team whether the field can be renamed to one of the supported keys.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H3 class="text-text-100 mt-2 -mb-1 text-base font-bold"&gt;Unexpected severity/log level values&lt;/H3&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Symptoms&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Ingested logs show severity values that don't match those emitted by the application.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The application's severity values are non-standard but happen to start with the same letter as a known severity level, for example, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;STATS&lt;/CODE&gt; mapped to &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;SEVERE&lt;/CODE&gt;, or &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;WAITING&lt;/CODE&gt; mapped to &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;WARN&lt;/CODE&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Cause (brief)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When JSON parsing is turned on, Log module applies a permissive severity mapping that matches values in recognized severity keys based on their &lt;STRONG&gt;first letter&lt;/STRONG&gt;. Non-standard values that share a first letter with a known log level can be mapped incorrectly. For the full list of severity value mappings, see &lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="https://docs.dynatrace.com/docs/analyze-explore-automate/logs/lma-log-ingestion/lma-log-ingestion-via-api/lma-log-data-transformation" target="_blank" rel="noopener"&gt;Log data transformation for OneAgent-ingested JSON logs&lt;/A&gt;.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When JSON parsing is disabled, severity mapping is stricter, and this ambiguity does not apply.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Resolution&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Inspect the affected log entries and check whether the severity/level field contains values that begin with the same letter as a standard severity (for example, values starting with &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;S&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;W&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;I&lt;/CODE&gt;, or &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;E&lt;/CODE&gt;).&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Adjust the application's log format so severity values use unambiguous strings, ideally, the standard severity names (&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;INFO&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;WARN&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;ERROR&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;DEBUG&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TRACE&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;FATAL&lt;/CODE&gt;).&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;If the application can't be changed, consider disabling JSON parsing for this log source to apply the stricter severity mapping. Note: this loses automatic JSON field extraction.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"&gt;What's next&lt;/H2&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;For broader boundary issues (multi-line entries split incorrectly, entries merged), see &lt;EM&gt;Troubleshooting log record boundary detection&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;For missing logs (records not appearing at all, including timestamp-out-of-bounds drops), see &lt;EM&gt;Troubleshooting missing logs&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;For ingest delay, see &lt;EM&gt;Troubleshooting log ingest delay&lt;/EM&gt;.&lt;/LI&gt;
&lt;/UL&gt;</description>
    <pubDate>Tue, 02 Jun 2026 13:14:47 GMT</pubDate>
    <dc:creator>Kacper</dc:creator>
    <dc:date>2026-06-02T13:14:47Z</dc:date>
    <item>
      <title>Troubleshooting JSON parsing in Log module</title>
      <link>https://community.dynatrace.com/t5/Troubleshooting/Troubleshooting-JSON-parsing-in-Log-module/ta-p/300189</link>
      <description>&lt;H2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"&gt;Table of contents&lt;/H2&gt;
&lt;OL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#summary" target="_blank" rel="noopener"&gt;Summary&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#problem" target="_blank" rel="noopener"&gt;Problem&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#resolution" target="_blank" rel="noopener"&gt;Resolution&lt;/A&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#mixed-plain-text-and-json-entries-in-the-same-log-file" target="_blank" rel="noopener"&gt;Mixed plain-text and JSON entries in the same log file&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#timestamp-extracted-from-the-wrong-field" target="_blank" rel="noopener"&gt;Timestamp extracted from the wrong field&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#timestamp-in-a-non-standard-json-key" target="_blank" rel="noopener"&gt;Timestamp in a non-standard JSON key&lt;/A&gt;&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#unexpected-severity--log-level-values" target="_blank" rel="noopener"&gt;Unexpected severity/log level values&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="#whats-next" target="_blank" rel="noopener"&gt;What's next&lt;/A&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;HR /&gt;
&lt;H2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"&gt;Summary&lt;/H2&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;This article helps you troubleshoot common issues with JSON log ingestion in Log module (deployed via OneAgent or Dynatrace Operator). It covers mixed plain-text and JSON log files, incorrect timestamp extraction, and incorrect severity mapping. It applies to SaaS and Managed environments on Linux and Windows.&lt;/P&gt;
&lt;H2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"&gt;Problem&lt;/H2&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Log Module supports JSON log ingestion, but parsing does not always behave as expected. Common symptoms include:&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;A log file contains both plain-text and JSON entries, and the JSON entries are reported individually in some places and merged with plain-text entries in others.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;A JSON log entry is ingested with the wrong timestamp, for example, a &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;created_at&lt;/CODE&gt; or &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;eventtime&lt;/CODE&gt; value is used instead of the entry's actual log time.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;A log entry uses a custom JSON field for its timestamp, but Log module doesn't pick it up.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Severity (log level) values in ingested logs don't match the values written by the application, for example, a &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;severity&lt;/CODE&gt; field set to &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;STATS&lt;/CODE&gt; appears in Dynatrace as &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;SEVERE&lt;/CODE&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"&gt;Resolution&lt;/H2&gt;
&lt;H3 class="text-text-100 mt-2 -mb-1 text-base font-bold"&gt;Mixed plain-text and JSON entries in the same log file&lt;/H3&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Symptoms&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;A log file or container stream contains both plain-text log lines and JSON objects.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;JSON entries are sometimes reported individually and sometimes merged with surrounding plain-text lines, depending on where in the file Log module began reading.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Behavior is inconsistent between agent restarts or rotations.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Cause&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Log Module does not support log files that mix plain-text and JSON entries without explicit guidance on where each entry begins. This is a known limitation.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Resolution&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Configure the &lt;STRONG&gt;Log entry boundary&lt;/STRONG&gt; setting so Log module knows where one entry ends and the next begins. You'll typically need one boundary pattern per entry type (one matching JSON entries, one matching plain-text entries).&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;For step-by-step configuration, see &lt;EM&gt;Troubleshooting log record boundary detection &amp;gt; Mixed plain text and JSON entries not separated correctly&lt;/EM&gt;.&lt;/P&gt;
&lt;HR /&gt;
&lt;H3 class="text-text-100 mt-2 -mb-1 text-base font-bold"&gt;Timestamp extracted from the wrong field&lt;/H3&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Symptoms&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;A JSON log entry is ingested with a timestamp that doesn't match its actual log time.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The misleading timestamp value matches a field elsewhere in the JSON payload (for example, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;eventtime&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;created_at&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;period_start&lt;/CODE&gt;).&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The log line contains plain-text content before the JSON object (a "prefix").&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Cause (brief)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When JSON parsing is turned on, Log module looks for the timestamp value in a predefined set of supported JSON keys. For the full list of supported keys, see &lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="https://docs.dynatrace.com/docs/analyze-explore-automate/logs/lma-log-ingestion/lma-log-ingestion-via-api/lma-ingest-json-txt-logs" target="_blank" rel="noopener"&gt;Ingest JSON and TXT logs&lt;/A&gt;. The same rules apply to OneAgent log ingestion.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When a plain-text prefix exists before the JSON object, the timestamp found in the prefix takes priority over any timestamp inside the JSON object. Plain-text content &lt;STRONG&gt;after&lt;/STRONG&gt; the closing &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;}&lt;/CODE&gt; (a "suffix") is not parsed, it's copied as-is into the log content.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Resolution&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;If the wrong timestamp is being picked from a prefix, adjust the application's log format so the prefix either contains the intended timestamp or contains no date-like string.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;If the wrong timestamp is being pulled from the JSON object, reorder the JSON so a supported timestamp key appears before any misleading fields.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;If neither option is possible, see &lt;EM&gt;Troubleshooting missing logs &amp;gt; Entries dropped — timestamp out of bounds&lt;/EM&gt; for additional workarounds, including disabling JSON parsing or defining an explicit timestamp pattern.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H3 class="text-text-100 mt-2 -mb-1 text-base font-bold"&gt;Timestamp in a non-standard JSON key&lt;/H3&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Symptoms&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The log entry contains a clearly recognizable timestamp inside the JSON payload, but Log module assigns a different (or auto-observed) timestamp.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The JSON key holding the timestamp is not on the &lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="https://docs.dynatrace.com/docs/analyze-explore-automate/logs/lma-log-ingestion/lma-log-ingestion-via-api/lma-ingest-json-txt-logs" target="_blank" rel="noopener"&gt;list of supported timestamp keys&lt;/A&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Resolution&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When JSON parsing is turned on, Log module only looks for timestamps in the predefined set of supported keys. A timestamp in a non-standard key is ignored.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;To extract the timestamp from a non-standard key:&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;&lt;STRONG&gt;Turn off JSON parsing&lt;/STRONG&gt; for this log source. Log Module will then scan the raw log line for a timestamp using configured patterns, allowing you to anchor on the non-standard field. Note: With JSON parsing turned off, JSON fields are no longer automatically extracted as log attributes; the line is ingested as a raw string.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Alternatively, ask the application team whether the field can be renamed to one of the supported keys.&lt;/LI&gt;
&lt;/UL&gt;
&lt;HR /&gt;
&lt;H3 class="text-text-100 mt-2 -mb-1 text-base font-bold"&gt;Unexpected severity/log level values&lt;/H3&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Symptoms&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Ingested logs show severity values that don't match those emitted by the application.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;The application's severity values are non-standard but happen to start with the same letter as a known severity level, for example, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;STATS&lt;/CODE&gt; mapped to &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;SEVERE&lt;/CODE&gt;, or &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;WAITING&lt;/CODE&gt; mapped to &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;WARN&lt;/CODE&gt;.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Cause (brief)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When JSON parsing is turned on, Log module applies a permissive severity mapping that matches values in recognized severity keys based on their &lt;STRONG&gt;first letter&lt;/STRONG&gt;. Non-standard values that share a first letter with a known log level can be mapped incorrectly. For the full list of severity value mappings, see &lt;A class="underline underline underline-offset-2 decoration-1 decoration-current/40 hover:decoration-current focus:decoration-current" href="https://docs.dynatrace.com/docs/analyze-explore-automate/logs/lma-log-ingestion/lma-log-ingestion-via-api/lma-log-data-transformation" target="_blank" rel="noopener"&gt;Log data transformation for OneAgent-ingested JSON logs&lt;/A&gt;.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When JSON parsing is disabled, severity mapping is stricter, and this ambiguity does not apply.&lt;/P&gt;
&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;STRONG&gt;Resolution&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Inspect the affected log entries and check whether the severity/level field contains values that begin with the same letter as a standard severity (for example, values starting with &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;S&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;W&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;I&lt;/CODE&gt;, or &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;E&lt;/CODE&gt;).&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;Adjust the application's log format so severity values use unambiguous strings, ideally, the standard severity names (&lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;INFO&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;WARN&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;ERROR&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;DEBUG&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;TRACE&lt;/CODE&gt;, &lt;CODE class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]"&gt;FATAL&lt;/CODE&gt;).&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;If the application can't be changed, consider disabling JSON parsing for this log source to apply the stricter severity mapping. Note: this loses automatic JSON field extraction.&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold"&gt;What's next&lt;/H2&gt;
&lt;UL class="[li_&amp;amp;]:mb-0 [li_&amp;amp;]:mt-1 [li_&amp;amp;]:gap-1 [&amp;amp;:not(:last-child)_ul]:pb-1 [&amp;amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3"&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;For broader boundary issues (multi-line entries split incorrectly, entries merged), see &lt;EM&gt;Troubleshooting log record boundary detection&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;For missing logs (records not appearing at all, including timestamp-out-of-bounds drops), see &lt;EM&gt;Troubleshooting missing logs&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI class="font-claude-response-body whitespace-normal break-words pl-2"&gt;For ingest delay, see &lt;EM&gt;Troubleshooting log ingest delay&lt;/EM&gt;.&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Tue, 02 Jun 2026 13:14:47 GMT</pubDate>
      <guid>https://community.dynatrace.com/t5/Troubleshooting/Troubleshooting-JSON-parsing-in-Log-module/ta-p/300189</guid>
      <dc:creator>Kacper</dc:creator>
      <dc:date>2026-06-02T13:14:47Z</dc:date>
    </item>
  </channel>
</rss>

