harbor
  • Introduction
  • 安装
  • API
  • harbor数据库
  • 镜像与源码项目
  • UI
    • user
      • GET_/users
    • Router
    • Controller-API
      • user
      • project
      • member
      • repository
      • base.go
  • JobService
  • secretkey
  • 日志
Powered by GitBook
On this page

Was this helpful?

日志

Harbor的ui与jobservice两个项目的代码中,当需要打出日志时,调用log包里的如下五个函数:

log.Infof(string, ...interface{})
log.Debugf(string, ...interface{})
log.Warningf(string, ...interface{})
log.Errorf(string, ...interface{})
log.Fatalf(string, ...interface{})

这五个函数实际上是把日志以特定的格式输出到容器的stdout中,格式如下:

Oct 20 16:48:06 172.17.0.1 ui[123738]: 2018-10-20T08:48:06Z [DEBUG] [utils.go:307]: Sync repositories from registry to DB is done.

当日志输出到容器的stdout中时,日志还会被发送给到一个syslog网络服务器。通过docker-compose.yml的文件中logging选项可以知道,该syslog网络服务器就是harbor-log容器:

version: '2'
services:
  log:
    image: vmware/harbor-log:0.5.0
    container_name: harbor-log 
    restart: always
    volumes:
      - /var/log/harbor/:/var/log/docker/
    ports:
      - 1514:514
...
  ui:
    ...
    logging:
      driver: "syslog"
      options:  
        syslog-address: "tcp://127.0.0.1:1514"
        tag: "ui"
...

当日志被harbor-log接收后,它会根据作进一步的处理:(1)根据tag把日志放到不同的文件中,(2)每天产生一个目录

我们查看harbor-log的/var/log/docker目录的内容如下,harbor会保存七天的日志:

.
└── 2018-10-20
    ├── anacron.log
    ├── CROND.log
    ├── jobservice.log
    ├── mysql.log
    ├── registry.log
    ├── run-parts.log
    └── ui.log

最后,在docker-compose.yml文件中将日志挂载到宿主机的/var/log/harbor目录下,我们就可以在宿主机上看到harbor的日志了。

Previoussecretkey

Last updated 4 years ago

Was this helpful?