Logdy - 在网页浏览器中查看终端日志
最新版本:0.13(2024年7月10日)- 阅读公告
Logdy 是一个单一可执行文件,你可以将它添加到 PATH 中,使其像其他工具一样可用:grep、awk、sed、jq。无需安装、部署或编译。它在本地运行,因此也很安全。了解更多。
独立使用
# 与任何 shell 命令一起使用
$ tail -f file.log | logdy
INFO[2024-02...] WebUI 已启动,访问 http://localhost:8080 port=8080
作为 Go 库使用
package main
import "github.com/logdyhq/logdy-core/logdy"
func main(){
logdyLogger := logdy.InitializeLogdy(logdy.Config{
ServerIp: "127.0.0.1",
ServerPort: "8080",
}, nil)
logdyLogger.LogString("日志消息")
<-context.Background().Done()
}
演示
访问 logdy.dev 获取更多信息。
项目状态:Beta 版本,正在积极添加新功能。
Logdy 正在积极开发中,还有很多功能有待添加。欢迎早期采用者提供反馈。随时发布 Issues、Pull Requests 并参与 Discussions。请关注更新,访问 Logdy 博客。
使用脚本安装
以下命令将下载最新版本并将可执行文件添加到系统的 PATH 中。你也可以用它来更新 Logdy。
$ curl https://logdy.dev/install.sh | sh
使用 Homebrew 安装(MacOS)
在 MacOS 上,你可以使用 homebrew 安装 Logdy。
$ brew install logdy
下载预编译二进制文件
导航到 Github 上的 releases 页面,为你的架构下载最新版本。
wget https://github.com/logdyhq/logdy-core/releases/download/v0.12.0/logdy_linux_amd64;
mv logdy_linux_amd64 logdy;
chmod +x logdy;
此外,你可以将二进制文件添加到 PATH 以便更轻松地访问。
快速开始
以下命令产生的任何输出都将转发到 Web UI。
node index.js | logdy
应该会出现以下内容
INFO[2024-02...] WebUI 已启动,访问 http://localhost:8080 port=8080
打开 URL 地址并开始构建解析器、列和过滤器。
你还可以通过多种其他方式运行 Logdy,查看文档。
安装 Go 库
$ go get -u github.com/logdyhq/logdy-core/logdy
阅读更多关于如何在 Go 应用中嵌入使用 Logdy 的信息。
文档
产品文档请访问官方文档。
CLI 用法
用法:
logdy [命令] [标志]
logdy [命令]
可用命令:
completion 为指定的 shell 生成自动完成脚本
demo 启动演示模式,将生成随机日志,[数字] 定义每秒生成的消息数
follow 跟踪添加到文件的行。例如 `logdy follow foo.log /var/log/bar.log`
forward 将 STDIN 转发到指定端口,例如 `tail -f file.log | logdy forward 8123`
help 关于任何命令的帮助
socket 设置一个端口以监听传入的日志消息。例如 `logdy socket 8233`。你可以设置多个端口 `logdy socket 8123 8124 8125`
stdin 监听提供的命令的 STDOUT/STDERR。例如 `logdy stdin "npm run dev"`
utils 一组帮助处理大文件的实用命令
标志:
--append-to-file string 将消息日志追加到的文件路径,如果文件不存在则创建
--append-to-file-raw 当设置 'append-to-file' 时,原始行(不带元数据)将保存到文件中
--bulk-window int 收集日志消息并批量发送到客户端的时间窗口。减小此窗口将改善屏幕上呈现消息的"实时"感,但可能降低 UI 性能(默认 100)
--config string 存储 UI 配置(json)的文件路径
--disable-ansi-code-stripping 使用此标志禁止 Logdy 去除 ANSI 序列代码
-t, --fallthrough 将所有接收到的 stdin 原样传递到终端(将显示传入的消息)
-h, --help logdy 的帮助
--max-message-count int 缓冲区中存储以供进一步检索的最大消息数。缓冲区溢出时,将删除最旧的消息。(默认 100000)
-n, --no-analytics 选择不发送有助于改进 Logdy 的匿名分析数据
-u, --no-updates 选择不在程序启动时检查更新
-p, --port string Web UI 将运行的端口(默认 "8080")
--ui-ip string 将 Web UI 服务器绑定到特定 IP 地址(默认 "127.0.0.1")
--ui-pass string 用于在 UI 中进行身份验证的密码
-v, --verbose 详细日志
--version logdy 的版本
开发
对于开发,我们建议运行 demo
模式
go run . demo 1
上述命令将以 demo
模式启动 Logdy,每秒产生 1 条日志消息。
你可以阅读更多关于演示模式的信息。
如果你想开发 UI,请查看 logdy-ui 的 readme 以获取在开发期间如何同时运行两者的说明。
构建
此存储库在编译期间使用静态资源嵌入。这样,UI 就可以从单个二进制文件中提供服务。在构建之前,请确保你将编译好的 UI(按照构建说明进行)复制到 assets
目录中。UI 已经提交到此存储库中,所以你不需要再做任何操作。
查看 embed.go
以了解更多关于 UI 如何嵌入到二进制文件中的详细信息。
对于本地架构构建:
go build
发布
对于跨架构构建,使用 gox
。这将为特定架构生成多个二进制文件(在 bin/
目录中),不要忘记更新 main.Version
标签。
gox \
-ldflags "-X 'main.Version=x.x.x'" \
-output="bin/{{.Dir}}_{{.OS}}_{{.Arch}}" \
-osarch="linux/amd64 windows/386 windows/amd64 darwin/amd64 darwin/arm64 linux/arm64"
准备就绪后,在新的 Github 发布中发布这些二进制文件。再次提醒,不要忘记更新版本号。
ghr vx.x.x bin/