package config import ( "fmt" "time" ) const ( // DevMode means development mode. DevMode = "dev" // TestMode means test mode. TestMode = "test" // ProductionMode means production mode. ProductionMode = "prod" ) type ( EngineConf struct { // TaskTimerPrecision // 全局任务的timer间隔 TaskTimerPrecision time.Duration `json:",default=1s"` // Mode 运行模式 Mode string `json:",default=dev,options=[dev,test,prod]"` // Name 引擎名称 Name string `json:",default=NL,env=ENGINE_NAME"` // ReadDeadline 读数据超时时长,0为不超时 ReadDeadline time.Duration `json:",default=0s"` // WriteDeadline 写数据超时时长,0为不超时 WriteDeadline time.Duration `json:",default=0s"` // Deadline 读+写数据超时时长,0为不超时 Deadline time.Duration `json:",default=0s"` } ) // ShallLogDebug 是否应该打印 Debug 级别的日志,打印的首要条件是 nlog 的打印级别为 debug func (c EngineConf) ShallLogDebug() bool { return c.Mode == DevMode || c.Mode == TestMode } func (c EngineConf) LogPrefix() string { return fmt.Sprintf("[NNet-%s]", c.Name) }