文件输出器

功能描述

文件输出器:将请求信息输出到日志文件中,具备以下特性:

  • 自定义文件的存放目录及文件名称

  • 按照一定周期分割日志文件,避免单个文件过大不好查看的问题

  • 定时删除过期文件,降低硬盘空间开销

文件日志生命周期图解

OpenAPI配置日志

配置参数说明

参数名值类型是否必填值可能性默认值说明
namestring实例名
driverstringfile驱动名
descriptionstring描述
scopes[]string作用域,此处填写access_log
filestring日志文件的文件名
dirstring日志文件的目录路径
periodstring["day","hour"]更替日志文件的周期时间,可选day、hour其一
expireint3旧日志文件的保存时间,单位为天
typestring["line","json"]lineformatter的类型
formatterobjectformatter的输出内容

注意

  • period字段:表示新建一个日志文件的周期时间,新建日志文件的同时会将旧日志文件的文件名由filename.log修改为filename-文件修改时间.log
  • formatter的配置教程点此进行跳转

返回参数说明

参数名类型是否必含说明
idstring实例id
namestring实例名
driverstring驱动名
descriptionstring描述
professionstring模块名
createstring创建时间
updatestring更新时间
scopes[]string作用域
filestring日志文件的文件名
dirstring日志文件的目录路径
periodstring更替日志文件的周期时间,可选day、hour其一
expireint旧日志文件的保存时间,单位为天
typestringformatter的类型
formatterobjectformatter的输出内容

创建文件输出器示例

curl -X POST  \
  'http://127.0.0.1:9400/api/output' \
  -H 'Content-Type:application/json' \
  -d '{
	"name": "demo_file",
	"driver": "file",
	"description": "示例文件输出器",
    "scopes": ["access_log"],
	"dir": "/var/log",
	"file": "demo",
	"period": "day",
	"expire": 1,
	"type": "line",
	"formatter": {
		"fields": ["$request_id", "$request", "$status", "@time", "@proxy", "$response_time"],
		"time": ["$msec", "$time_iso8601", "$time_local"],
		"proxy": ["$proxy_uri", "$proxy_scheme", "$proxy_addr"]
	}
}'

返回结果示例

{
	"create": "2022-06-14 12:02:31",
	"description": "示例文件输出器",
    "scopes": ["access_log"],
	"dir": "/var/log",
	"driver": "file",
	"expire": 1,
	"file": "demo",
	"formatter": {
		"fields": ["$request_id", "$request", "$status", "@time", "@proxy", "$response_time"],
		"proxy": ["$proxy_uri", "$proxy_scheme", "$proxy_addr"],
		"time": ["$msec", "$time_iso8601", "$time_local"]
	},
	"id": "demo_file@output",
	"name": "demo_file",
	"period": "day",
	"profession": "output",
	"type": "line",
	"update": "2022-06-14 12:02:31"
}

文件输出器使用

文件输出器可用于access-log插件的日志输出,点此跳转至access-log插件。