Skip to content
Elogs
Esc
navigateopen⌘Jpreview
On this page

Startup Banner

启动横幅(service / port / format)

Elogs 启动时会在控制台打印一行横幅,告诉你服务跑在哪个端口。生产环境可以关掉,或者换成不画框的简洁文本。

默认行为

import { Elysia } from 'elysia'
import { createElogs } from '@eastgold15/elogs'

new Elysia().use(createElogs()).listen(3000)

启动后控制台会输出一个带 ASCII 框的横幅:

┌─────────────────────────────────────────────────┐
│                                                 │
│                 Elysia v1.4.19                  │
│                                                 │
│  🦊 Elysia is running at http://localhost:3000  │
│                                                 │
└─────────────────────────────────────────────────┘

配置

startup 字段在 CreateElogsOptions 根级,跟 config 平级:

字段 类型 默认 描述
show boolean true 是否在启动时输出横幅
format "simple" | "banner" "banner" "banner" = ASCII 框,"simple" = 单行文本
import { createElogs } from '@eastgold15/elogs'

createElogs({
  startup: {
    show: false,            // 完全关闭
  },
})

createElogs({
  startup: {
    format: 'simple',       // 单行,无 ASCII 框
  },
})

simple 模式输出:

🦊 Elysia is running at http://localhost:3000

preset 默认值

dev / prod / json 三套内置 preset 在 StartupConfig 上有自己的默认值:

Preset show format
dev true "banner"
prod false "banner"
json false "banner"

显式 startup 字段会覆盖 preset 的值。

import { createElogs } from '@eastgold15/elogs'

createElogs({
  preset: 'prod',         // prod 默认 show: false
  startup: { show: true }, // 显式覆盖,生产也想看横幅
})

程序化渲染

renderBanner(message) 公开导出,返回 ASCII 框字符串(不打印)。要自己写 CLI 工具、嵌进别的输出流时直接调:

import { renderBanner } from '@eastgold15/elogs'

console.log(renderBanner('🛰  My service is up at http://localhost:3000'))
// ┌──────────────────────────────────────────────────┐
// │                                                  │
// │                   Elysia v1.4.19                 │
// │                                                  │
// │  🛰  My service is up at http://localhost:3000   │
// │                                                  │
// └──────────────────────────────────────────────────┘

renderBanner 接收的只是单行 message;版本行(“Elysia vX.Y.Z”)是函数内部自动拼的。

startServer 内部钩子

startServer(server, options) 是 Elogs 内部在 .setup() 阶段调用的钩子 —— 它从 Elysia 拿到的 server 对象(带 port / hostname / protocol)读出 URL,然后调 renderBannerconsole.log 输出。

一般情况下你不需要直接调 startServer,createElogs() 内部已经接好。只有在自己写非 Elysia 启动流程(比如 Bun.serve() 配 Elysia handler)时才用。

import { startServer } from '@eastgold15/elogs'

Bun.serve({
  port: 3000,
  fetch: app.fetch,
})
// 手动驱动 banner
startServer({ port: 3000, hostname: 'localhost', protocol: 'http' }, { startup: { show: true } })

关闭 banner

生产环境想干净一点:

createElogs({
  startup: { show: false },
})

或者用 prod preset(它默认就是关闭的):

createElogs({ preset: 'prod' })

相关 API

Last updated on August 15, 2026

Was this page helpful?