feat(log): App日志目录扁平化为 MeowOS/logs/<包名>/ (agent-198, 用户定案) — launcher MEOW_LOG_DIR 注入改 logs/<appid>+mkdir_p; SDK meow_ui_log.c 去 apps/ 嵌套; 卡可用时一次性迁移 logs/apps/* 并入新路径; APPS.md/APP_LOG_MANAGER.md 同步
launcher→61f6b0db; files→ac2c2781; 编译0warning(新增代码)
This commit is contained in:
1 parent
32a6a8ed1e
commit
5f7e7542bd
6 files changed
+132
-5
No files matched your search
@@ -807,10 +807,12 @@ int launch_app(struct app *a)
|
||||
/* child: exec the app. M2.12 注入 MEOW_LOG_DIR + MEOW_DATA_DIR/MEOW_CACHE_DIR
|
||||
* (exFAT 无 symlink,数据目录用 env 传给应用)。PATH 继承 launcher(含卡上 opt/bin
|
||||
* 若在),卡不在则回退普通 PATH。M2.52 追加注入 MEOW_LOG_APP(app_id)+MEOW_LOG_LEVEL
|
||||
* (读全局 log.level),使 SDK meow_log() 按 app 分离写 apps/<app_id>.log 并做级别过滤。 */
|
||||
* (读全局 log.level),使 SDK meow_log() 按 app 分离写 logs/<id>/<ts>_<pid>.log 并做级别过滤。
|
||||
* M2.x 简化:MEOW_LOG_DIR 从 logs/apps/<id>/logs 改注入 logs/<id>(目录不存在则建)。 */
|
||||
close(execpipe[0]);
|
||||
char *argv[] = { a->exec, NULL };
|
||||
char env_path[320], env_log[320], env_data[320], env_cache[320];
|
||||
char app_log_dir[288];
|
||||
char env_app[MEOW_APP_ID_MAX + 16], env_lvl[48];
|
||||
char env_fpng[400], env_fidx[400], env_fapp[96];
|
||||
char env_mf[24];
|
||||
@@ -823,7 +825,15 @@ int launch_app(struct app *a)
|
||||
snprintf(env_path, sizeof env_path, "PATH=%s", cp ? cp : "/usr/bin:/bin");
|
||||
envp[ne++] = env_path;
|
||||
envp[ne++] = "HOME=/root";
|
||||
if (log_dir[0]) { snprintf(env_log, sizeof env_log, "MEOW_LOG_DIR=%s", log_dir); envp[ne++] = env_log; }
|
||||
/* M2.x 简化:MEOW_LOG_DIR 注入 logs/<id>(id=app_id,空则 "app",与 SDK app 分离前缀一致)。
|
||||
* 目录不存在则用 meow_mkdir_p 建(幂等),失败不阻塞注入——SDK 侧还有 mkdir_p 兜底。 */
|
||||
if (log_dir[0]) {
|
||||
const char *logid = a->id[0] ? a->id : "app";
|
||||
snprintf(app_log_dir, sizeof app_log_dir, "%s/%s", log_dir, logid);
|
||||
meow_mkdir_p(app_log_dir);
|
||||
snprintf(env_log, sizeof env_log, "MEOW_LOG_DIR=%s", app_log_dir);
|
||||
envp[ne++] = env_log;
|
||||
}
|
||||
/* M2.52:MEOW_LOG_APP=app_id(=app.json.package,缺省回退目录名;与注册表一致;无 id 则跳过,SDK 兜底 "app") */
|
||||
if (a->id[0]) { snprintf(env_app, sizeof env_app, "MEOW_LOG_APP=%s", a->id); envp[ne++] = env_app; }
|
||||
/* M2.52:MEOW_LOG_LEVEL 读全局 log.level(error/warn/info/debug→索引0/1/2/3),
|
||||
|
||||
Reference in new issue
Block a user