123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package zend
- /*
- #include "szend.h"
- #include "clog.h"
- */
- import "C"
- // import "unsafe"
- import (
- "io/ioutil"
- "log"
- "math/rand"
- "runtime"
- "time"
- )
- const (
- SINGLE_THREAD = 1
- )
- func init() {
- initRawLog()
- initCLog()
- initSingleThread()
- }
- func initRawLog() {
- // To enable use true:
- if false {
- log.SetFlags(log.Lshortfile | log.LstdFlags)
- log.SetPrefix("[phpgo] ")
- } else {
- log.SetFlags(0)
- log.SetOutput(ioutil.Discard)
- }
- }
- func initCLog() {
- C.clog_init_fd(C.STDOUT_FILENO, C.STDOUT_FILENO)
- C.clog_init_fd(C.STDERR_FILENO, C.STDERR_FILENO)
- C.dlog_set_level(C.STDOUT_FILENO, 0)
- C.dlog_set_level(C.STDERR_FILENO, 0)
- }
- func initSingleThread() {
- if C.gozend_iszts() == 0 {
- omp := runtime.GOMAXPROCS(0)
- if omp > SINGLE_THREAD {
- runtime.GOMAXPROCS(SINGLE_THREAD)
- log.Printf("Adjust GOMAXPROCS %d => %d\n", omp, SINGLE_THREAD)
- }
- }
- rand.Seed(time.Now().UnixNano())
- }
- const (
- LOG_NONE = int(-1)
- LOG_ERROR = int(C.CLOG_ERROR)
- LOG_WARN = int(C.CLOG_WARN)
- LOG_INFO = int(C.CLOG_INFO)
- LOG_DEBUG = int(C.CLOG_DEBUG)
- )
- func LogInitFD(fd int) {
- C.clog_init_fd(C.int(fd), C.int(fd))
- }
- func LogSetLevel(fd int, level int) {
- C.dlog_set_level(C.int(fd), C.int(level))
- }
|