1
0
mirror of https://shylinux.com/x/icebergs synced 2025-04-28 18:22:02 +08:00
This commit is contained in:
IT 老营长 @云轩领航-创始人 2023-03-02 13:29:06 +08:00
parent 5b0a86f019
commit 93e32aa8a0
5 changed files with 21 additions and 16 deletions

View File

@ -62,8 +62,7 @@ func init() {
defer logs.Println(ice.EXIT) defer logs.Println(ice.EXIT)
break break
} }
m.Sleep("1s") if logs.Println(); m.Sleep("1s").Config("log.save") == ice.TRUE {
if logs.Println(); m.Config("log.save") == ice.TRUE {
back := kit.Format("var/log.%s", logs.Now().Format("20060102_150405")) back := kit.Format("var/log.%s", logs.Now().Format("20060102_150405"))
m.Cmd(SYSTEM, "cp", "-r", "var/log", back, ice.Maps{CMD_OUTPUT: ""}) m.Cmd(SYSTEM, "cp", "-r", "var/log", back, ice.Maps{CMD_OUTPUT: ""})
} }

View File

@ -30,7 +30,8 @@ func _runtime_init(m *ice.Message) {
for _, k := range ENV_LIST { for _, k := range ENV_LIST {
switch m.Conf(RUNTIME, kit.Keys(CONF, k), kit.Env(k)); k { switch m.Conf(RUNTIME, kit.Keys(CONF, k), kit.Env(k)); k {
case CTX_PID: case CTX_PID:
ice.Info.PidPath = kit.Select(path.Join(ice.VAR_LOG, ice.ICE_PID), kit.Env(k)) // ice.Info.PidPath = kit.Select(path.Join(ice.VAR_LOG, ice.ICE_PID), kit.Env(k))
ice.Info.PidPath = kit.Env(k)
case CTX_SHARE: case CTX_SHARE:
ice.Info.CtxShare = kit.Env(k) ice.Info.CtxShare = kit.Env(k)
case CTX_RIVER: case CTX_RIVER:

View File

@ -27,6 +27,9 @@ func _signal_process(m *ice.Message, p string, s os.Signal) {
if p == "" { if p == "" {
b, _ := file.ReadFile(ice.Info.PidPath) b, _ := file.ReadFile(ice.Info.PidPath)
p = string(b) p = string(b)
if runtime.GOOS == "windows" {
return
}
} }
if p, e := os.FindProcess(kit.Int(kit.Select(kit.Format(os.Getpid()), p))); e == nil { if p, e := os.FindProcess(kit.Int(kit.Select(kit.Format(os.Getpid()), p))); e == nil {
p.Signal(s) p.Signal(s)
@ -55,6 +58,9 @@ func init() {
} }
_signal_listen(m, 2, mdb.NAME, "重启", ice.CMD, "exit 1") _signal_listen(m, 2, mdb.NAME, "重启", ice.CMD, "exit 1")
_signal_listen(m, 3, mdb.NAME, "退出", ice.CMD, "exit 0") _signal_listen(m, 3, mdb.NAME, "退出", ice.CMD, "exit 0")
if ice.Info.PidPath == "" {
return
}
if f, p, e := logs.CreateFile(ice.Info.PidPath); e == nil { if f, p, e := logs.CreateFile(ice.Info.PidPath); e == nil {
defer f.Close() defer f.Close()
fmt.Fprint(f, os.Getpid()) fmt.Fprint(f, os.Getpid())

View File

@ -81,7 +81,6 @@ const (
) )
const ( const (
BENCH = "bench" BENCH = "bench"
TRACE = "trace"
) )
const ( const (
FILE = "file" FILE = "file"
@ -93,11 +92,9 @@ const LOG = "log"
var Index = &ice.Context{Name: LOG, Help: "日志模块", Configs: ice.Configs{ var Index = &ice.Context{Name: LOG, Help: "日志模块", Configs: ice.Configs{
FILE: {Name: FILE, Help: "日志文件", Value: kit.Dict( FILE: {Name: FILE, Help: "日志文件", Value: kit.Dict(
BENCH, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "bench.log"), mdb.LIST, []string{}), BENCH, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "bench.log"), mdb.LIST, []string{}),
WATCH, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "watch.log"), mdb.LIST, []string{ DEBUG, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "debug.log"), mdb.LIST, []string{ice.LOG_DEBUG}),
mdb.CREATE, mdb.REMOVE, mdb.INSERT, mdb.DELETE, mdb.MODIFY, mdb.EXPORT, mdb.IMPORT,
}),
ERROR, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "error.log"), mdb.LIST, []string{ice.LOG_WARN, ice.LOG_ERROR}), ERROR, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "error.log"), mdb.LIST, []string{ice.LOG_WARN, ice.LOG_ERROR}),
TRACE, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "trace.log"), mdb.LIST, []string{ice.LOG_DEBUG}), WATCH, kit.Dict(nfs.PATH, path.Join(ice.VAR_LOG, "watch.log"), mdb.LIST, []string{mdb.CREATE, mdb.REMOVE, mdb.INSERT, mdb.DELETE, mdb.MODIFY, mdb.EXPORT, mdb.IMPORT}),
)}, )},
VIEW: {Name: VIEW, Help: "日志格式", Value: kit.Dict( VIEW: {Name: VIEW, Help: "日志格式", Value: kit.Dict(
GREEN, kit.Dict(PREFIX, "\033[32m", SUFFIX, "\033[0m", mdb.LIST, []string{ice.CTX_START, ice.LOG_CMDS}), GREEN, kit.Dict(PREFIX, "\033[32m", SUFFIX, "\033[0m", mdb.LIST, []string{ice.CTX_START, ice.LOG_CMDS}),
@ -107,9 +104,6 @@ var Index = &ice.Context{Name: LOG, Help: "日志模块", Configs: ice.Configs{
SHOW: {Name: SHOW, Help: "日志分流", Value: kit.Dict()}, SHOW: {Name: SHOW, Help: "日志分流", Value: kit.Dict()},
}, Commands: ice.Commands{ }, Commands: ice.Commands{
ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) { ice.CTX_INIT: {Hand: func(m *ice.Message, arg ...string) {
m.Confm(VIEW, nil, func(key string, value ice.Map) {
kit.Fetch(value[mdb.LIST], func(index int, k string) { m.Conf(SHOW, kit.Keys(k, VIEW), key) })
})
m.Confm(FILE, nil, func(key string, value ice.Map) { m.Confm(FILE, nil, func(key string, value ice.Map) {
kit.Fetch(value[mdb.LIST], func(index int, k string) { m.Conf(SHOW, kit.Keys(k, FILE), key) }) kit.Fetch(value[mdb.LIST], func(index int, k string) { m.Conf(SHOW, kit.Keys(k, FILE), key) })
if f, p, e := logs.CreateFile(kit.Format(value[nfs.PATH])); e == nil { if f, p, e := logs.CreateFile(kit.Format(value[nfs.PATH])); e == nil {
@ -118,6 +112,9 @@ var Index = &ice.Context{Name: LOG, Help: "日志模块", Configs: ice.Configs{
m.Logs(mdb.CREATE, nfs.FILE, p) m.Logs(mdb.CREATE, nfs.FILE, p)
} }
}) })
m.Confm(VIEW, nil, func(key string, value ice.Map) {
kit.Fetch(value[mdb.LIST], func(index int, k string) { m.Conf(SHOW, kit.Keys(k, VIEW), key) })
})
}}, }},
ice.CTX_EXIT: {Hand: func(m *ice.Message, arg ...string) {}}, ice.CTX_EXIT: {Hand: func(m *ice.Message, arg ...string) {}},
}} }}

10
init.go
View File

@ -92,8 +92,12 @@ func Run(arg ...string) string {
if len(arg) == 0 && len(os.Args) > 1 { if len(arg) == 0 && len(os.Args) > 1 {
arg = kit.Simple(os.Args[1:], kit.Split(kit.Env(CTX_ARG))) arg = kit.Simple(os.Args[1:], kit.Split(kit.Env(CTX_ARG)))
} }
if len(arg) == 0 && runtime.GOOS == "windows" { if len(arg) == 0 {
if runtime.GOOS == "windows" {
arg = append(arg, SERVE, START, DEV, DEV) arg = append(arg, SERVE, START, DEV, DEV)
} else {
arg = append(arg, "forever", START, DEV, DEV)
}
} }
Pulse.meta[MSG_DETAIL] = arg Pulse.meta[MSG_DETAIL] = arg
kit.Fetch(kit.Sort(os.Environ()), func(env string) { kit.Fetch(kit.Sort(os.Environ()), func(env string) {
@ -102,14 +106,12 @@ func Run(arg ...string) string {
} }
}) })
time.Local = time.FixedZone("Beijing", 28800) time.Local = time.FixedZone("Beijing", 28800)
Pulse.time = time.Now() if Pulse.time = time.Now(); Pulse._cmd == nil {
if Pulse._cmd == nil {
Pulse._cmd = &Command{RawHand: logs.FileLines(3)} Pulse._cmd = &Command{RawHand: logs.FileLines(3)}
} }
switch Index.Merge(Index).Begin(Pulse, arg...); kit.Select("", arg, 0) { switch Index.Merge(Index).Begin(Pulse, arg...); kit.Select("", arg, 0) {
case SERVE, SPACE: case SERVE, SPACE:
if os.Getenv("ctx_log") == "" { if os.Getenv("ctx_log") == "" {
// logs.Disable(true)
// os.Stderr.Close() // os.Stderr.Close()
} }
if Index.Start(Pulse, arg...) { if Index.Start(Pulse, arg...) {