// ロガーの初期化処理を行う // // param ; dir ログファイルの出力先ディレクトリ。 // // param : name ログファイルの種別(例:master、servant)。 // // param : identifer ロック用ファイルに(付与する識別ID(例:servantはListePort)。 // // param : level 出力ログレベル(trace,debug,info,warn,error,criticalのいずれかを指定) // // param : maxSizeKB ログファイルの最大サイズ。この値を超えるとログローテーションが発生する。 // // param : maxRolls ログファイルの最大世代数 // // param : timeoutSec ロックのタイムアウト秒 // // return : エラー情報を返す。 func Init(dir string, name string, identifer string, level string, maxSizeKB int, maxRolls int, timeoutSec int) error { var lockErr error lockName := lockHeader + name if identifer != "" { lockName = lockName + "_" + identifer } lockName = lockName + ".lock" locker, lockErr = util.InitLock(lockName) if lockErr != nil { return lockErr } if timeoutSec > 0 { lockTimeout = timeoutSec * 1000 } logfile := fmt.Sprintf("%s%c%s.log", dir, os.PathSeparator, name) if err := makeFileIfNotExist(logfile); err != nil { Term() return err } config := generateConfigString(logfile, level, maxSizeKB, maxRolls) logger, err := seelog.LoggerFromConfigAsString(config) if err != nil { Term() return err } seelog.ReplaceLogger(logger) valid = true return nil }
func initForTest() { config := ` <seelog type="sync" minlevel="trace"> <outputs formatid="common"> <console /> </outputs> <formats> <format id="common" format="2015-04-01 12:34:56.789 [%LEV] %Msg%n"/> </formats> </seelog>` logger, _ := seelog.LoggerFromConfigAsString(config) locker, _ = util.InitLock(lockName) seelog.ReplaceLogger(logger) valid = true }
// Network構造体のコンストラクタ関数 // // param : name ジョブネットワーク名。 // // return : ジョブネットワーク構造体。 func NewNetwork(name string) (*Network, error) { nwk := new(Network) nwk.Name = name nwk.elements = make(map[string]Element) nwk.MasterPath = fmt.Sprintf("%s%c%s.bpmn", config.Dir.JobnetDir, os.PathSeparator, name) nwk.JobExPath = fmt.Sprintf("%s%c%s.csv", config.Dir.JobnetDir, os.PathSeparator, name) var err error nwk.globalLock, err = util.InitLock(lock_name) if err != nil { return nil, err } return nwk, err }