# JSONL via Shortcode


# Server Logs

JSONL (newline-delimited JSON) files are auto-detected:


<table class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<thead>
<tr class="gt_heading">
<th colspan="5" class="gt_heading gt_title gt_font_normal"><div style="padding-top: 0; padding-bottom: 7px;">
<span class="gd-tbl-badge" style="background-color: #E3F2FD; color: #1565C0; border: 1px solid #E3F2FD; margin-right: 8px;">JSONL</span>Rows6Columns4
</div></th>
</tr>
<tr class="gt_col_headings">
<th class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"></th>
<th id="timestamp" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

timestamp

<em>str</em>

</div></th>
<th id="level" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

level

<em>str</em>

</div></th>
<th id="module" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

module

<em>str</em>

</div></th>
<th id="message" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

message

<em>str</em>

</div></th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr>
<td class="gt_row gt_right gd-tbl-rownum">0</td>
<td class="gt_row gt_left" style="max-width: 153px">2025-01-15T08:30:00</td>
<td class="gt_row gt_left" style="max-width: 66px">INFO</td>
<td class="gt_row gt_left" style="max-width: 63px">auth</td>
<td class="gt_row gt_left" style="max-width: 246px">User login successful</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">1</td>
<td class="gt_row gt_left" style="max-width: 153px">2025-01-15T08:31:12</td>
<td class="gt_row gt_left" style="max-width: 66px">WARNING</td>
<td class="gt_row gt_left" style="max-width: 63px">db</td>
<td class="gt_row gt_left" style="max-width: 246px">Slow query detected (3.2s)</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">2</td>
<td class="gt_row gt_left" style="max-width: 153px">2025-01-15T08:32:45</td>
<td class="gt_row gt_left" style="max-width: 66px">ERROR</td>
<td class="gt_row gt_left" style="max-width: 63px">api</td>
<td class="gt_row gt_left" style="max-width: 246px">Request timeout on /v2/users</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">3</td>
<td class="gt_row gt_left" style="max-width: 153px">2025-01-15T08:33:01</td>
<td class="gt_row gt_left" style="max-width: 66px">INFO</td>
<td class="gt_row gt_left" style="max-width: 63px">cache</td>
<td class="gt_row gt_left" style="max-width: 246px">Cache miss for key user:42</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">4</td>
<td class="gt_row gt_left" style="max-width: 153px">2025-01-15T08:34:20</td>
<td class="gt_row gt_left" style="max-width: 66px">DEBUG</td>
<td class="gt_row gt_left" style="max-width: 63px">auth</td>
<td class="gt_row gt_left" style="max-width: 246px">Token refresh for session abc123</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">5</td>
<td class="gt_row gt_left" style="max-width: 153px">2025-01-15T08:35:55</td>
<td class="gt_row gt_left" style="max-width: 66px">ERROR</td>
<td class="gt_row gt_left" style="max-width: 63px">db</td>
<td class="gt_row gt_left" style="max-width: 246px">Connection pool exhausted</td>
</tr>
</tbody>
</table>


# With Narrow Columns

Constrain column widths to see truncation:


<table class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<thead>
<tr class="gt_heading">
<th colspan="5" class="gt_heading gt_title gt_font_normal"><div style="padding-top: 0; padding-bottom: 7px;">
<span class="gd-tbl-badge" style="background-color: #E3F2FD; color: #1565C0; border: 1px solid #E3F2FD; margin-right: 8px;">JSONL</span>Rows6Columns4
</div></th>
</tr>
<tr class="gt_col_headings">
<th class="gt_col_heading gt_columns_bottom_border gt_right" scope="col"></th>
<th id="timestamp" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

timestamp

<em>str</em>

</div></th>
<th id="level" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

level

<em>str</em>

</div></th>
<th id="module" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

module

<em>str</em>

</div></th>
<th id="message" class="gt_col_heading gt_columns_bottom_border gt_left" scope="col"><div>

message

<em>str</em>

</div></th>
</tr>
</thead>
<tbody class="gt_table_body">
<tr>
<td class="gt_row gt_right gd-tbl-rownum">0</td>
<td class="gt_row gt_left" style="max-width: 144px">2025-01-15T08:30:00</td>
<td class="gt_row gt_left" style="max-width: 90px">INFO</td>
<td class="gt_row gt_left" style="max-width: 87px">auth</td>
<td class="gt_row gt_left" style="max-width: 144px">User login successful</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">1</td>
<td class="gt_row gt_left" style="max-width: 144px">2025-01-15T08:31:12</td>
<td class="gt_row gt_left" style="max-width: 90px">WARNING</td>
<td class="gt_row gt_left" style="max-width: 87px">db</td>
<td class="gt_row gt_left" style="max-width: 144px">Slow query detected (3.2s)</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">2</td>
<td class="gt_row gt_left" style="max-width: 144px">2025-01-15T08:32:45</td>
<td class="gt_row gt_left" style="max-width: 90px">ERROR</td>
<td class="gt_row gt_left" style="max-width: 87px">api</td>
<td class="gt_row gt_left" style="max-width: 144px">Request timeout on /v2/users</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">3</td>
<td class="gt_row gt_left" style="max-width: 144px">2025-01-15T08:33:01</td>
<td class="gt_row gt_left" style="max-width: 90px">INFO</td>
<td class="gt_row gt_left" style="max-width: 87px">cache</td>
<td class="gt_row gt_left" style="max-width: 144px">Cache miss for key user:42</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">4</td>
<td class="gt_row gt_left" style="max-width: 144px">2025-01-15T08:34:20</td>
<td class="gt_row gt_left" style="max-width: 90px">DEBUG</td>
<td class="gt_row gt_left" style="max-width: 87px">auth</td>
<td class="gt_row gt_left" style="max-width: 144px">Token refresh for session abc123</td>
</tr>
<tr>
<td class="gt_row gt_right gd-tbl-rownum">5</td>
<td class="gt_row gt_left" style="max-width: 144px">2025-01-15T08:35:55</td>
<td class="gt_row gt_left" style="max-width: 90px">ERROR</td>
<td class="gt_row gt_left" style="max-width: 87px">db</td>
<td class="gt_row gt_left" style="max-width: 144px">Connection pool exhausted</td>
</tr>
</tbody>
</table>
