Skip to content

System logs: copy search results to the clipboard #8227

Closed

Description

@DavidePrincipi

Admins often need to share System logs search results in a support ticket or with an AI assistant. Today they must select the text with the mouse, which is error-prone with long results and loses the context: what was searched, where, in which time range, and whether the "Max lines" limit cut the results.

Proposed solution

Add a Copy button to each search view of the System logs page (one per view when the page is split). It copies plain text with:

  • core version (this information may be missing in the page current data model) and copy timestamp
  • search criteria: context (cluster, node or application), search query, regular expression on/off, mode, start/end date and time, timezone, max lines, Loki instance
  • counters, as in "Showing N of MAX lines from … to …"
  • the log lines with their timestamps
NethServer 8 - System logs
Core version: 3.23.0
Copied at: 2026-10-12 10:42:17 (Europe/Rome)
Context: Application (mail1)
Search query: "authentication failed"  (regular expression: no)
Mode: Dump
From: 2026-10-12 08:00 to 2026-10-12 10:40 (Europe/Rome)
Loki instance: loki1 (active)
Max lines: 500
Result: showing 500 of 500 lines (limit reached)
----
2026-10-12 08:01:12 mail1 dovecot: auth: ... authentication failed ...

Alternative solutions

Download the same content as a .txt file. This is not required.

See also

Activity

  1. self-assigned this
    on Oct 14, 2026
  2. moved this from ToDo to In Progress in NethServeron Oct 16, 2026
  3. stephdl commented on Oct 26, 2026

    @stephdl

    QA

    Image: ghcr.io/nethserver/core:3.24.1-dev.2

    api-cli run update-core --data '{"core_url":"ghcr.io/nethserver/core:3.24.1-dev.2","nodes":[1],"force":true}'
    

    Copy:

    • The "Copy output" button is disabled before any search and while loading.
    • Dump search, Cluster context: the copy has the header (nodes with FQDN and core version, query, dates, Loki, result), then ----, then the lines shown on screen.
    • Node context lists only that node. Application context lists the instance, its version and its node.
    • Follow mode: the header has no dates and no max lines.
    • Change the form after a search without searching again: the copy keeps the filters of the search that ran.

    Regression:

    • Dump and follow searches show logs as before.
    • The list-core-modules and list-nodes tasks run once, on the first search only. No error banner appears.
  4. moved this from In Progress to Testing in NethServeron Oct 26, 2026
  5. added
    testingPackages are available from testing repositories
    on Oct 26, 2026
  6. removed their assignment
    on Oct 26, 2026
  7. DavidePrincipi commented on Nov 6, 2026

    @DavidePrincipi
    MemberAuthor

    VERIFIED in core 3.24.1-dev.6

    Setup: cluster with rl3 (Rocky 9, node 1, Loki) and dn4 (Debian 13, node 2). The UI was driven with a headless browser. The copied text was captured from the clipboard write, and task requests were counted.

    Copy:

    • Disabled while loading: with the WebSocket replies delayed, the button is disabled during the search and enabled when the lines arrive. Before the first search the button is not shown at all, rather than disabled.
    • Dump search, Cluster context: the header lists both nodes with FQDN and core version, then query, regex flag, mode, dates, timezone, Loki instance, max lines and "showing 500 of 500 lines … (max lines reached)", then ----, then the lines.
    • Node context lists only that node. Application context lists the instance, its version and its node.
    • Follow mode: the header has no dates and no max lines.
    • Change the form after a search without searching again: the copy keeps the filters of the search that ran.

    Regression:

    • Dump and follow searches show logs.
    • list-core-modules and list-nodes run once, on the first search only. A second search runs neither. No error banner.
  8. removed
    testingPackages are available from testing repositories
    on Nov 6, 2026
  9. moved this from Testing to Verified in NethServeron Nov 6, 2026
  10. DavidePrincipi commented on Nov 6, 2026

    @DavidePrincipi
    MemberAuthor
  11. moved this from Verified to Done in NethServeron Nov 6, 2026
  12. removed their assignment
    on Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    verifiedAll test cases were verified successfully

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions