查看 AKStream.Next 原始日志及保存路径
本页帮助实施和运维人员在 Linux、Windows、macOS 或 Docker 环境中找到 AKStream.Next 的原始日志,持续查看新日志,并判断应该检查应用文件还是宿主服务日志。
本页列出官方安装器的默认路径。x64 与 ARM64 使用相同目录;如果安装时修改了程序目录,或在
akstream.next.json中修改了 Serilog 文件路径,应以当前实例的实际配置为准。日志可能包含设备编号、内网地址、请求参数和异常堆栈。发送给第三方前应先脱敏,不要公开数据库连接串、密码、Token、Secret 或客户信息。
flowchart LR
A[AKStream.Next 主服务] --> B[按日期保存的应用文件]
A --> C[标准输出与标准错误]
C --> D[Linux journald]
C --> E[Windows 事件日志]
C --> F[macOS launchd 文件]
C --> G[Docker 容器日志]
先看结论
AKStream.Next 有两类日志:
- 应用文件日志:由 Serilog 写入,文件名通常为
akstream-next-YYYYMMDD.log;同一天按大小滚动时还会产生带分卷编号的文件。这类日志适合历史查询和归档。 - 宿主服务日志:主服务和 NodeAgent 写到标准输出或操作系统日志。程序尚未完成首次配置、配置文件无效或进程启动早期崩溃时,应优先查看这一类日志。
| 部署方式 | 主服务应用文件日志 | 主服务与 NodeAgent 的宿主日志 |
|---|---|---|
| Linux x64 / ARM64 | /opt/AKStream.Next/AKStream.Next/logs/akstream-next-YYYYMMDD*.log |
systemd journal,通过 journalctl 或 akn logs 查看 |
| Windows x64 / ARM64 | %ProgramFiles%\AKStream.Next\AKStream.Next\logs\akstream-next-YYYYMMDD*.log |
Windows“应用程序”事件日志,通过事件查看器或 akn logs 查看 |
| macOS Intel / Apple Silicon | /Library/Application Support/AKStream.Next/AKStream.Next/logs/akstream-next-YYYYMMDD*.log |
/Library/Application Support/AKStream.Next/Data/Logs/ 下的 stdout、stderr 文件 |
| Docker | 容器内 /app/Data/Logs/akstream-next-YYYYMMDD*.log;宿主机为 <部署根目录>/Data/Logs/ |
通过 docker logs 查看;底层保存位置由 Docker 日志驱动决定 |
首次配置完成后,系统生成的主配置会同时启用控制台输出和按日期滚动的文件日志。首次配置尚未完成时,按日期文件可能还不存在,此时直接查看宿主服务日志。
在 Linux 上查看日志
Linux x64 和 ARM64 的默认路径完全相同。使用官方安装器且没有指定自定义安装目录时,应用文件位于:
/opt/AKStream.Next/AKStream.Next/logs/
列出已经生成的日志:
sudo ls -lh /opt/AKStream.Next/AKStream.Next/logs/
通过统一管理命令查看主服务和托管 MediaServer 最近 500 行日志:
sudo akn logs -n 500 main
持续跟踪主服务日志,按 Ctrl+C 退出:
sudo akn logs -f main
只查看 NodeAgent:
sudo akn logs -f agent
也可以直接查询 systemd journal:
sudo journalctl -u akstream-next.service -n 500 --no-pager
sudo journalctl -u akstream-next-agent.service -n 500 --no-pager
sudo journalctl -u akstream-next.service -f
systemd journal 不是普通文本日志。启用持久化时,底层数据通常位于 /var/log/journal/;使用易失存储时通常位于 /run/log/journal/,重启后可能丢失。不要直接编辑这些二进制文件,应使用 journalctl 导出需要的时间范围。
如果安装时使用了 --install-dir,主服务应用文件路径随程序目录变化:
<自定义安装目录>/AKStream.Next/logs/
可以读取 systemd 实际工作目录进行确认:
systemctl show akstream-next.service -p WorkingDirectory
在 Windows 上查看日志
官方默认安装下,主服务应用文件位于:
%ProgramFiles%\AKStream.Next\AKStream.Next\logs\
在 PowerShell 中列出日志:
Get-ChildItem "$env:ProgramFiles\AKStream.Next\AKStream.Next\logs" `
-Filter 'akstream-next-*.log' |
Sort-Object LastWriteTime -Descending
使用统一管理命令读取最新主服务日志:
akn logs -n 500 -LogScope main
akn logs -f -LogScope main
只查看 NodeAgent:
akn logs -f -LogScope agent
主服务没有产生文件日志,或者在文件日志初始化前退出时,打开“事件查看器 → Windows 日志 → 应用程序”,检查来源为 AKStream.Next 或 AKStream.Next.NodeAgent 的事件。
历史版本或自定义 Windows 服务宿主可能把相对日志路径解析到其他工作目录。akn logs 会在以下受信任位置中选择最新的 akstream-next-*.log:
%ProgramFiles%\AKStream.Next\AKStream.Next\logs%ProgramData%\AKStream.Next\Logs%ProgramData%\AKStream.Next\Config\logs%SystemRoot%\System32\logs
如果发现日志落在非默认位置,应检查服务的实际启动命令和主配置,不要长期依赖兼容目录。
在 macOS 上查看日志
macOS 同时保存主服务应用文件和 launchd 捕获的标准输出、标准错误。
主服务应用文件默认位于:
/Library/Application Support/AKStream.Next/AKStream.Next/logs/
launchd 日志默认位于:
/Library/Application Support/AKStream.Next/Data/Logs/
其中包括:
akstream-next.stdout.log
akstream-next.stderr.log
akstream-next-agent.stdout.log
akstream-next-agent.stderr.log
使用统一管理命令查看:
sudo akn logs -n 500 main
sudo akn logs -f main
sudo akn logs -f agent
也可以直接读取 launchd 文件:
sudo tail -n 500 \
'/Library/Application Support/AKStream.Next/Data/Logs/akstream-next.stdout.log'
sudo tail -F \
'/Library/Application Support/AKStream.Next/Data/Logs/akstream-next.stderr.log'
服务在首次配置、权限检查或运行时加载阶段退出时,stderr 往往比应用文件更早记录失败原因。
在 Docker 中查看日志
主容器中的应用文件默认位于:
/app/Data/Logs/akstream-next-YYYYMMDD*.log
/app/Data 是宿主机持久化目录的挂载点。使用默认部署根目录时,宿主机日志位于:
~/AKStream.Next-Docker/Data/Logs/
如果安装时通过 --root 指定了目录,则实际位置为:
<部署根目录>/Data/Logs/
查看三个容器最近 500 行输出:
docker logs --tail 500 akstream-next
docker logs --tail 500 akstream-next-agent
docker logs --tail 500 akstream-next-mysql
持续跟踪主容器:
docker logs --follow --tail 500 akstream-next
查询 /app/Data 在宿主机上的实际目录:
docker inspect akstream-next \
--format '{{range .Mounts}}{{if eq .Destination "/app/Data"}}{{.Source}}{{end}}{{end}}'
查看 Docker 日志驱动和底层日志路径:
docker inspect akstream-next \
--format 'driver={{.HostConfig.LogConfig.Type}} path={{.LogPath}}'
使用 json-file 驱动的原生 Linux Docker 通常把容器输出保存在 /var/lib/docker/containers/<容器ID>/<容器ID>-json.log。Docker Desktop 会把该目录放在内部虚拟机中。不要直接编辑、截断或删除底层 JSON 文件,应使用 docker logs,并通过 Docker 日志轮转配置控制磁盘占用。
确认当前实例的真实路径
默认路径只适用于官方安装器生成的配置。最终文件位置由主配置中的 Serilog File Sink 决定:
Serilog → WriteTo → Async → configure → File → Args → path
默认值为:
logs/akstream-next-.log
它是相对路径,基于 AKStream.Next 主服务的实际工作目录解析。Docker 官方配置使用绝对路径 /app/Data/Logs/akstream-next-.log。
检查配置时只需要查看 Serilog 部分,不要把完整配置复制到聊天、工单或截图中,因为同一文件可能包含数据库密码和流媒体服务 Secret。
怎样确认已经找到正确日志
满足下面三项即可:
- 日志文件或宿主日志的最后更新时间与当前服务器时间接近。
akn logs -f、journalctl -f或docker logs -f能持续显示当前实例的新日志。- 日志中的节点 ID、集群 ID 和版本与
akn info显示的当前实例一致。
如果服务无法启动,先保存最早出现的异常、完整堆栈和前后至少 50 行上下文。不要只截取最后一行,也不要先删除日志或反复重装。
下一步:使用 akn 管理服务;如果日志已经找到但仍无法判断故障位置,进入问题定位器。