刘光辉
10 小时以前 34981c30a78e8bbd7791131059a9210f9928b62c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
logging:
  config: classpath:logback-spring.xml
  level: #自定义第三方包名日志等级
    io.seata: ERROR
    org.apache.dubbo: ERROR
    # 🔴 启动成功日志的「防吞」开关(2026-08-11)。
    # 背景:下面 log.level.root 是 ERROR,没有单独条目的服务(gateway / lims)root 就是 ERROR,
    # 启动类那句 log.info("xx启动成功") 会被静默吞掉——排障时看不到服务到底起没起来。
    # 这里按**类**精确放行,而不是把整个服务开成 INFO:logback 中子 logger 级别覆盖 root,
    # 于是只有启动类这几行 INFO 能过,控制台仍保持干净(gateway 实测 11 行,含 Spring 自带的
    # Starting/Started 两行——它们用的正是主类 logger,附带启动耗时,是净收益)。
    # 新增服务时如果它在 log.level 里没有 INFO 条目,就往这里补一行。
    jnpf.JnpfGatewayApplication: INFO
    jnpf.JnpfLimsApplication: INFO
    # 解除注释后Druid连接池打印SQL语句
    druid.sql.Statement: debug
#    druid.sql.DataSource: debug
#    druid.sql.Connection: debug
#    druid.sql.ResultSet: debug
    org.redisson.cluster: ERROR
log:
  level:
    root: ERROR
    # 🔴 平台聚合服务(2026-08-11)。logback 的 root level 取 log.level.${spring.application.name},
    # 缺条目就回落到上面的 root: ERROR——那样连「启动成功」都不打印,排障等于瞎跑。
    # 下面被注释的 9 个平台服务名(jnpf-system / jnpf-visualdev / jnpf-workflow …)
    # 在聚合后**全部失效**:它们的 spring.application.name 已统一为 jnpf-platform。
    jnpf-platform: INFO
    #自定义服务的日志等级, 名称是服务中的spring.application.name: 等级 TRACE,DEBUG,INFO,WARN,ERROR
    # jnpf-oauth: ERROR
    # jnpf-system: ERROR
    # jnpf-lims: ERROR
    # jnpf-datareport: ERROR
    # jnpf-visualdev: ERROR
    jnpf-workflow: INFO
    # jnpf-file: ERROR
    # jnpf-tenant: ERROR
    # jnpf-message: ERROR
    # jnpf-scheduletask: ERROR
    # jnpf-permission: ERROR
    # jnpf-visualdata: ERROR
    # jnpf-app: ERROR
    # jnpf-gateway: ERROR
    # jnpf-eln: ERROR
  # 日志根参数化(2026-08-11):日志文件此前写在容器**可写层**且无挂载——容器一 recreate
  # 就全部清零(当天为改配置重建过 3 次,前两次日志全丢),且悄悄撑大 docker 数据盘
  # (cx-platform 空闲 9 分钟就写了 227KB ≈ 36MB/天/服务)。
  # 🔴 默认值必须保持相对路径 `log`:宿主栈(start-all.sh)就靠它把日志落在仓库工作目录下,
  # 改成绝对路径会让宿主栈往 / 底下写。容器栈通过 compose 的 JNPF_LOG_DIR=/data/jnpf-logs 覆盖。
  # 路径里的 ${spring.application.name} 让所有服务共用一个挂载点也不会互相覆盖——
  # 宿主侧自动长成 logs/jnpf-gateway/、logs/jnpf-platform/ …,compose 里只需一行 volumes。
  path: ${JNPF_LOG_DIR:log}/${spring.application.name}