---
name: log_entry
lang: cpp
domain: core
version: "1.0.0"
algebraic: product
definition: |
  namespace fn_log {
      constexpr std::size_t kEntryTextMax = 480;

      struct Entry {
          Level     level;
          long long ts_ms;       // unix epoch en milisegundos
          char      text[kEntryTextMax];
      };
  }
description: "Entrada del ring buffer in-memory del logger. Contiene nivel, timestamp en milisegundos y la linea ya formateada [ts] [LEVEL] mensaje."
tags: [logger, buffer, entry, ringbuffer]
uses_types: [log_level_cpp_core]
file_path: "cpp/functions/core/logger.h"
examples:
  - "const fn_log::Entry* e = fn_log::buffer_at(0);"
notes: "POD trivialmente copiable. La ventana Logs (log_window) itera el buffer via buffer_at(i)."
---

# log_entry

Entrada individual del ring buffer in-memory del logger global. La capacidad del buffer es `fn_log::kBufferCapacity` (2000 entradas por defecto) — al llenarse, sobrescribe las mas antiguas.

`text` contiene la linea ya formateada (con prefijo `[YYYY-MM-DD HH:MM:SS.mmm] [LEVEL]`), lista para ser pintada por el visualizador. `level` y `ts_ms` se mantienen aparte para filtrado y coloreado por nivel.

Acceso de solo lectura via `fn_log::buffer_at(i)` con `i ∈ [0, fn_log::buffer_size())`. El indice 0 corresponde a la entrada mas antigua viva.
