# 输出日志

日志功能依赖配置项 app.serviceCode

# 访问日志

业务组件包自动集成了记录访问日志的功能

服务器环境下访问日志位于 /home/logs/%serviceCode%/access.log.%DATE%

开发环境日志记录在项目目录的 logs/access.log.%DATE% 文件夹

pattern 正则:

\[(?<time>[\S-\s]*)\]\s\[(?<traceId>\S*)\]\s\[(?<level>\S*)\]\s\[(?<pid>\S*)\]\s(?<method>\S+)\s(?<path>\S*)\s(?<httpVersion>\S*)\s(?<responseTime>\S*)\s(?<status>\S*)\s(?<referer>\S*)\s(?<email>\S*)\s\"(?<clientIp>[\S-\s]*)\"\s\"(?<userAgent>[\S-\s]*)\"

日志格式:

[%d{dd/MM/yyyy:hh:mm:ss +T}] [%x{traceId}] [%p] [%z] %x{method} %x{path} %x{httpVersion} %x{responseTime} %x{status} %x{referer} %x{email} %x{clientIp} "%x{userAgent}" %n

含义:

[时间] [traceId] [日志状态] [进程id] method path httpVersion responseTime花费时间 状态码 referer 用户email 客户端的ip userAgent

输出样例:

[28/Jul/2019:23:59:47 +0800] [null] [INFO] [1710] GET /i/health HTTP/1.1 0 200 null null "::ffff:10.200.150.230" "Consul Health Check"

如果对应的字段无,输出为null作为占位符。

访问日志无需干预

# 业务日志

服务器环境下访问日志位于 /home/logs/%serviceCode%/stat.log.%DATE%

开发环境日志记录在项目目录的 logs/stat.log.%DATE% 文件夹

使用

import { Controller, Get, Autowired } from '@tiger/common'
import { StatLogger } from '@tiger/base-provider'

@Controller()
export class ExampleController {

  @Autowired
  statLogger: StatLogger;

  @Get()
  index() {
    return this.statLogger.info('Hi! stat logger!')
  }
}

# 应用日志

服务器环境下访问日志位于 /home/logs/%serviceCode%/app.log.%DATE%

开发环境日志记录在项目目录的 logs/app.log.%DATE% 文件夹

使用

import { Controller, Get, Autowired } from '@tiger/common'
import { AppLogger } from '@tiger/base-provider'

@Controller()
export class ExampleController {

  @Autowired
  appLogger: AppLogger;

  @Get()
  index() {
    return this.appLogger.info('Hi! app logger!')
  }
}