滚动切分

    简要说明如下:

    1. RotateSize用于设置滚动切分时按照文件大小进行切分,该属性的单位为字节。只有当该属性值大于0时才会开启滚动切分的特性。
    2. RotateExpire用于设置滚动切分时按照文件超过一定时间没有修改时进行切分。只有当该属性值大于0时才会开启滚动切分的特性。
    3. RotateBackupExpire用于设置按照过期时间进行清理。当切分文件超过指定的时间时将会被删除。
    4. RotateBackupCompress用于设置切分文件的压缩级别,默认为0表示不压缩。该压缩级别的取值范围为1-9,其中9为最大压缩级别。
    5. RotateCheckInterval用于设置定时器的定时检测间隔,默认为1小时,往往不需要设置。

    从以上滚动切分的配置项可以看到,仅有当RotateSize或者RotateExpire配置项被设置时才会生效,默认情况下是关闭的。

    glog模块的日志输出文件固定格式为*.log,即使用.log作为日志文件名后缀。为方便统一规范管理,切分文件的格式也是固定的,开发者无法自定义。当日志文件被滚动切分时,当前被切分的日志文件将会按照”*.切分时间.log“的格式进行重命名。其中的格式为:年月日时分秒毫秒微秒,例如:

    1. 简要说明:

      • 可以看到RotateSize配置项在配置文件中支持使用字符串的形式进行设置,例如:100M, 200MB, 500KB, 1Gib等等,在该示例中,我们设置日志文件大小超过100M时进行切分。
      • 同时,RotateBackupExpire的配置项也支持字符串配置,例如:1h, 30m, 1d6h, 7d等等,在该示例中,我们设置切分文件的过期时间为7d,即七天后会自动删除该切分文件。
    2. 示例2,按照日志文件修改过期进行滚动切分:

      在这里,我们设置RotateExpire1d表示当某个日志文件超过一天都没有任何修改/写入时,glog模块将会自动将其进行滚动切分。同时进行压缩存储。

    1. (推荐)全局使用同一个默认的日志单例对象(g.Log()),通过CatFile方法设置输出日志文件到不同的目录或文件名。
    2. 将不同日志对象的输出目录(Path配置项)设置为不同的文件目录,并且多个日志对象的日志目录不存在相互的层级关系。

    例如: 我们有两类业务日志文件orderpromo,分别对应订单业务和促销业务,我们先假定他们属于同一个服务程序中。

    假如日志路径为/var/log,我们可以:

    1. 通过g.Log().Cat("order").Print(xxx)输出订单日志。生成的日志文件例如:/var/log/order/2020-03-26.log
    2. 通过g.Log().Cat("promo").Print(xxx)输出促销日志。生成的日志文件例如:/var/log/promo/2020-03-26.log

    也可以通过:

    1. 通过g.Log().File("order").Print(xxx)输出订单日志。生成的日志文件例如:/var/log/order.log