예제 #1
0
파일: log.go 프로젝트: unikk/cuto
// ロガーの初期化処理を行う
//
// 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
}
예제 #2
0
파일: log_test.go 프로젝트: unikk/cuto
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
}
예제 #3
0
파일: network.go 프로젝트: unikk/cuto
// 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
}