Plain-Text Log — Mixed CRLF and LF Line Endings (log)
One log file written by two agents, four lines ending CRLF and three LF, with one line carrying trailing spaces before its break. Splitting on \n alone leaves a stray carriage return at the end of four fields, which is how a level or status ends up with an invisible character attached.
2026-03-17T09:14:32.850Z INFO checkout-api written by the Windows agent
2026-03-17T09:14:32.960Z INFO checkout-api still the Windows agent
2026-03-17T09:14:33.120Z INFO cart-api written by the Linux sidecar
2026-03-17T09:14:33.480Z WARN cart-api still the Linux sidecar
2026-03-17T09:14:33.900Z ERROR payments-api Windows agent again, after a rotation
2026-03-17T09:14:34.220Z INFO payments-api trailing spaces before the break
2026-03-17T09:14:34.610Z INFO notifier final line, LF only
Specifications
- Lines
- 7
- Crlf Lines
- 4
- Lf Lines
- 3
- Trailing Spaces Line
- 1
- Ends With Newline
- true
- Written Byte Exact
- true
- Note
- line endings are the fixture — the file is written byte-for-byte
Testing contract
Expected to pass- Scenario
- Split the file into lines and compare the last character of each parsed field.
- Expected result
- Seven lines are produced with no field ending in a stray \r, and the trailing-space line keeps its spaces if the parser is meant to preserve them.
What is a .log file?
LOG files are plain-text records of events emitted by software, typically one entry per line with a timestamp, severity, and message. There is no single standard, so formats range from unstructured text to structured JSON lines. They are central to debugging, monitoring, and auditing.
How to use this file
Use an example LOG file to test log parsers, timestamp and severity extraction, line-oriented streaming, and ingestion into monitoring or analysis pipelines.
How to use this file for testing
“Plain-Text Log — Mixed CRLF and LF Line Endings (log)” is a deterministic Novus Examples fixture for Observability, Log parsing, Encoding detection. Structured and plain-text telemetry with known timestamps, levels, request identifiers, and error states for testing log ingestion, correlation, dashboards, and alert pipelines.
Documented properties for this file: LOG · 500 bytes. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Telemetry fixtures use fixed trace IDs, span IDs, and timestamps so ingestion is reproducible run to run. Point your collector, parser, or query layer at the file and assert the documented span tree, metric families, or severity mix; service and host names are invented.
Code examples
grep -i error app-mixed-line-endings.log | head
awk '{print $1, $2, $NF}' app-mixed-line-endings.log | headRelated files
- jsonlStructured Log — Ten Timestamp Formats, One Instant (jsonl)The same instant written ten ways — RFC 3339 at three precisions and with a non-UTC offset, epoch seconds as integer and float, epoch milliseconds and nanoseconds, Common Log Format and the log4j comma-decimal form. What a timestamp autodetector must resolve to one moment.

- jsonlStructured Log — Unicode, RTL, Emoji and Control Characters (jsonl)Log messages in Latin, Japanese and Arabic scripts, an emoji flag and a zero-width-joiner family, NFC and NFD forms of the same accented letter, and escaped tab, newline and carriage return. Everything that makes a log line's byte length and its display width disagree.

- txtProfile — Demangled Symbols That Break the Folded Format (txt)Demangled C++ templates, Rust trait impls, Java generics, lambdas and unresolved hex addresses in the folded format — including one symbol containing a semicolon, which the format has no way to escape. That line is genuinely ambiguous, and how a parser handles it is the point.

- log.NET Exception with an Inner Exception Chain (log)A .NET exception whose inner exception is introduced by the ---> marker and closed by End of inner exception stack trace, wrapped in pipe-delimited log lines. Error groupers that key on the outermost message alone merge two genuinely different faults here.

- jsonlEnvoy-Style Proxy Access Log — JSON Lines (jsonl)Forty service-mesh proxy access records with the fields that make mesh debugging possible: response_flags distinguishing an upstream failure from an overflow, upstream_service_time against total duration, upstream host and cluster, and a request ID for correlation.

- logGo Panic with Full Goroutine Dump (log)A Go panic followed by the runtime's full goroutine dump — four goroutines with their wait states, two-line frames and a created by attribution, separated by blank lines. Blank-line separation defeats multi-line rules that treat an empty line as the end of an event.

Generated by generation/observability.py. Free for any use, no attribution required — license.