파일에 직접 로깅하는 로거로 교체
This commit is contained in:
@ -20,7 +20,6 @@ import (
|
||||
"time"
|
||||
"unsafe"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
"repositories.action2quare.com/ayo/houston/shared/protos"
|
||||
|
||||
@ -197,7 +196,7 @@ func NewClient() (HoustonClient, error) {
|
||||
|
||||
var client *grpc.ClientConn
|
||||
for {
|
||||
logger.Println("grpc.DialContext :", clientConfig.GrpcAddress)
|
||||
shared.Logger().Println("grpc.DialContext :", clientConfig.GrpcAddress)
|
||||
dialContext, cancelDial := context.WithTimeout(context.Background(), 15*time.Second)
|
||||
client, err = grpc.DialContext(dialContext, clientConfig.GrpcAddress, grpc.WithBlock(), grpc.WithTransportCredentials(insecure.NewCredentials()))
|
||||
if err == nil {
|
||||
@ -206,11 +205,11 @@ func NewClient() (HoustonClient, error) {
|
||||
}
|
||||
|
||||
cancelDial()
|
||||
logger.Println("grpc.DialContext failed :", err)
|
||||
shared.Logger().Println("grpc.DialContext failed :", err)
|
||||
time.Sleep(5 * time.Second)
|
||||
}
|
||||
|
||||
logger.Println("grpc.DialContext succeeded")
|
||||
shared.Logger().Println("grpc.DialContext succeeded")
|
||||
exefile, err := os.Executable()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -284,7 +283,7 @@ func NewClient() (HoustonClient, error) {
|
||||
var dr shared.DeployRequest
|
||||
unmarshal(&dr, resp.Args)
|
||||
|
||||
logger.Println(dr.Name, myname)
|
||||
shared.Logger().Println(dr.Name, myname)
|
||||
if dr.Name == myname {
|
||||
if srcdir, replacer, err := hc.prepareUpdateSelf(&dr); err == nil {
|
||||
args := []string{
|
||||
@ -293,14 +292,15 @@ func NewClient() (HoustonClient, error) {
|
||||
filepath.ToSlash(os.Args[0]),
|
||||
}
|
||||
args = append(args, os.Args[1:]...)
|
||||
shared.Logger().Println(replacer, args)
|
||||
cmd := exec.Command(replacer, args...)
|
||||
if err := cmd.Start(); err != nil {
|
||||
logger.Println(err)
|
||||
shared.Logger().Println(err)
|
||||
} else {
|
||||
hc.shutdownFunc()
|
||||
}
|
||||
} else {
|
||||
logger.Println(err)
|
||||
shared.Logger().Println(err)
|
||||
}
|
||||
} else {
|
||||
if err := hc.deploy(&dr); err == nil {
|
||||
@ -308,7 +308,7 @@ func NewClient() (HoustonClient, error) {
|
||||
hc.deploys[dr.Name] = prog
|
||||
op.Refresh(ctx, hc.makeOperationQueryRequest())
|
||||
} else {
|
||||
logger.Println(err)
|
||||
shared.Logger().Println(err)
|
||||
}
|
||||
}
|
||||
|
||||
@ -325,35 +325,35 @@ func NewClient() (HoustonClient, error) {
|
||||
}
|
||||
op.Refresh(ctx, hc.makeOperationQueryRequest())
|
||||
} else {
|
||||
logger.Println(err)
|
||||
shared.Logger().Println(err)
|
||||
}
|
||||
|
||||
case shared.Start:
|
||||
var sr shared.StartProcessRequest
|
||||
unmarshal(&sr, resp.Args)
|
||||
if err := hc.startChildProcess(&sr); err != nil {
|
||||
logger.Println(err)
|
||||
shared.Logger().Println(err)
|
||||
}
|
||||
|
||||
case shared.Stop:
|
||||
var sr shared.StopProcessRequest
|
||||
unmarshal(&sr, resp.Args)
|
||||
if err := hc.stopChildProcess(&sr); err != nil {
|
||||
logger.Println(err)
|
||||
shared.Logger().Println(err)
|
||||
}
|
||||
|
||||
case shared.Restart:
|
||||
var rr shared.RestartProcessRequest
|
||||
unmarshal(&rr, resp.Args)
|
||||
if err := hc.restartChildProcess(&rr); err != nil {
|
||||
logger.Println(err)
|
||||
shared.Logger().Println(err)
|
||||
}
|
||||
|
||||
case shared.Upload:
|
||||
var ur shared.UploadRequest
|
||||
unmarshal(&ur, resp.Args)
|
||||
if err := hc.uploadFiles(&ur); err != nil {
|
||||
logger.Println(err)
|
||||
shared.Logger().Println(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -390,7 +390,7 @@ func (hc *houstonClient) Start() {
|
||||
|
||||
go func() {
|
||||
c := <-interrupt
|
||||
logger.Println("interrupt!!!!!!!! :", c.String())
|
||||
shared.Logger().Println("interrupt!!!!!!!! :", c.String())
|
||||
hc.shutdownFunc()
|
||||
}()
|
||||
|
||||
@ -402,7 +402,7 @@ func (hc *houstonClient) Start() {
|
||||
default:
|
||||
err := hc.checkOperation()
|
||||
if err != nil {
|
||||
logger.Println("hc.checkUpdate failed :", err)
|
||||
shared.Logger().Println("hc.checkUpdate failed :", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -416,7 +416,7 @@ func (hc *houstonClient) checkOperation() error {
|
||||
defer func() {
|
||||
r := recover()
|
||||
if r != nil {
|
||||
logger.Error(r)
|
||||
shared.Logger().Println(r)
|
||||
}
|
||||
}()
|
||||
|
||||
@ -438,7 +438,7 @@ func (hc *houstonClient) checkOperation() error {
|
||||
cl.CloseSend()
|
||||
return err
|
||||
}
|
||||
logger.Println(update)
|
||||
shared.Logger().Println(update)
|
||||
hc.operationChan <- update
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,8 +13,6 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
|
||||
"golang.org/x/text/encoding/korean"
|
||||
@ -258,20 +256,24 @@ func (hc *houstonClient) prepareUpdateSelf(req *shared.DeployRequest) (srcdir st
|
||||
|
||||
selfname, _ := os.Executable()
|
||||
srcreplacer := path.Join(path.Dir(fname), "replacer") + path.Ext(selfname)
|
||||
replacer = "replacer" + path.Ext(selfname)
|
||||
replacer = "./" + filepath.ToSlash("replacer"+path.Ext(selfname))
|
||||
err = copy(srcreplacer, replacer)
|
||||
if err == nil {
|
||||
err = os.Chmod(replacer, 0775)
|
||||
}
|
||||
|
||||
// replacer먼저 가져옴
|
||||
return filepath.ToSlash(tempdir), filepath.ToSlash(replacer), copy(srcreplacer, replacer)
|
||||
return filepath.ToSlash(tempdir), replacer, err
|
||||
}
|
||||
|
||||
func (hc *houstonClient) deploy(req *shared.DeployRequest) error {
|
||||
logger.Println("start deploying")
|
||||
shared.Logger().Println("start deploying")
|
||||
root, err := hc.prepareDeploy(req.Name, req.Version)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
logger.Println("start downloading", req.Url)
|
||||
shared.Logger().Println("start downloading", req.Url)
|
||||
// verpath에 배포 시작
|
||||
fname, err := download(root, hc.makeDownloadUrl(req.Url), req.AccessToken)
|
||||
if err != nil {
|
||||
|
||||
@ -18,8 +18,6 @@ import (
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
"repositories.action2quare.com/ayo/houston/shared/protos"
|
||||
)
|
||||
@ -56,7 +54,7 @@ func (hc *houstonClient) uploadZipLogFile(zipFile string, name string, version s
|
||||
|
||||
req, err := http.NewRequest("POST", hc.httpAddr+"/upload", zf)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
}
|
||||
req.Header.Set("Houston-Service-Name", name)
|
||||
req.Header.Set("Houston-Service-Version", version)
|
||||
@ -121,19 +119,19 @@ func zipLogFiles(req *shared.UploadRequest, start, except string) (string, []str
|
||||
relative := file[len(root)+1:]
|
||||
fw, err := w.Create(relative)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
return "", nil, err
|
||||
}
|
||||
|
||||
src, err := os.Open(file)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
return "", nil, err
|
||||
}
|
||||
defer src.Close()
|
||||
|
||||
if _, err = io.Copy(fw, src); err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
return "", nil, err
|
||||
}
|
||||
}
|
||||
@ -220,7 +218,7 @@ func (hc *houstonClient) launch(meta *procmeta) error {
|
||||
defer func() {
|
||||
r := recover()
|
||||
if r != nil {
|
||||
logger.Println(r)
|
||||
shared.Logger().Println(r)
|
||||
debug.PrintStack()
|
||||
}
|
||||
close(relayChan)
|
||||
@ -266,10 +264,10 @@ func (hc *houstonClient) launch(meta *procmeta) error {
|
||||
os.Remove(oldf)
|
||||
}
|
||||
} else {
|
||||
logger.Println("uploadZipLogFile failed :", err)
|
||||
shared.Logger().Println("uploadZipLogFile failed :", err)
|
||||
}
|
||||
} else if err != nil {
|
||||
logger.Println("zipLogFiles failed :", err)
|
||||
shared.Logger().Println("zipLogFiles failed :", err)
|
||||
}
|
||||
}(startFile, nextFile)
|
||||
|
||||
@ -325,7 +323,7 @@ func (hc *houstonClient) launch(meta *procmeta) error {
|
||||
var errPrepareprocessLaunchFailed = errors.New("prepareProcessLaunch failed")
|
||||
|
||||
func (hc *houstonClient) startChildProcess(req *shared.StartProcessRequest) error {
|
||||
logger.Println("startChildProcess :", *req)
|
||||
shared.Logger().Println("startChildProcess :", *req)
|
||||
if req.Version == "latest" {
|
||||
// 최신 버전을 찾음
|
||||
latest, err := shared.FindLastestVersion(req.Name)
|
||||
@ -503,10 +501,10 @@ func (hc *houstonClient) uploadFiles(req *shared.UploadRequest) error {
|
||||
req.Version = latest
|
||||
}
|
||||
|
||||
logger.Println("uploadFiles req :", *req)
|
||||
shared.Logger().Println("uploadFiles req :", *req)
|
||||
for _, child := range hc.childProcs {
|
||||
if child.version == req.Version && child.name == req.Name {
|
||||
logger.Println("uploadFiles found :", child.version, child.name)
|
||||
shared.Logger().Println("uploadFiles found :", child.version, child.name)
|
||||
child.logUploadChan <- req
|
||||
return nil
|
||||
}
|
||||
@ -521,10 +519,10 @@ func (hc *houstonClient) uploadFiles(req *shared.UploadRequest) error {
|
||||
os.Remove(oldf)
|
||||
}
|
||||
} else {
|
||||
logger.Println("uploadZipLogFile failed :", err)
|
||||
shared.Logger().Println("uploadZipLogFile failed :", err)
|
||||
}
|
||||
} else if err != nil {
|
||||
logger.Println("zipLogFiles failed :", err)
|
||||
shared.Logger().Println("zipLogFiles failed :", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
1
go.mod
1
go.mod
@ -6,7 +6,6 @@ require (
|
||||
golang.org/x/text v0.9.0
|
||||
google.golang.org/grpc v1.55.0
|
||||
google.golang.org/protobuf v1.30.0
|
||||
repositories.action2quare.com/ayo/gocommon v0.0.0-20230528100715-93bd4f6c0bab
|
||||
)
|
||||
|
||||
require (
|
||||
|
||||
2
go.sum
2
go.sum
@ -18,5 +18,3 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||
repositories.action2quare.com/ayo/gocommon v0.0.0-20230528100715-93bd4f6c0bab h1:EMlxwDayv3rn8ttJcJuDLYoHA5odVn85+LjdAuw+2dw=
|
||||
repositories.action2quare.com/ayo/gocommon v0.0.0-20230528100715-93bd4f6c0bab/go.mod h1:ng62uGMGXyQSeuxePG5gJAMtip4Rnspu5Tu7hgvaXns=
|
||||
|
||||
8
main.go
8
main.go
@ -3,28 +3,30 @@ package main
|
||||
import (
|
||||
"flag"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/client"
|
||||
"repositories.action2quare.com/ayo/houston/server"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
)
|
||||
|
||||
var runAsClient = flag.Bool("client", false, "")
|
||||
var runAsServer = flag.Bool("server", false, "")
|
||||
|
||||
func main() {
|
||||
shared.InitLogger()
|
||||
|
||||
if !flag.Parsed() {
|
||||
flag.Parse()
|
||||
}
|
||||
|
||||
if !*runAsClient && !*runAsServer {
|
||||
logger.Fatal("client or server flag is needed")
|
||||
shared.Logger().Fatal("client or server flag is needed")
|
||||
return
|
||||
}
|
||||
|
||||
if *runAsClient {
|
||||
hc, err := client.NewClient()
|
||||
if err != nil {
|
||||
logger.Fatal(err)
|
||||
shared.Logger().Fatal(err)
|
||||
return
|
||||
}
|
||||
hc.Start()
|
||||
|
||||
@ -2,8 +2,8 @@ package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"os/exec"
|
||||
"path"
|
||||
@ -48,23 +48,28 @@ func copy(src, dst string) error {
|
||||
}
|
||||
|
||||
func main() {
|
||||
logfile, _ := os.OpenFile("replacer.log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666)
|
||||
defer logfile.Close()
|
||||
stdlog := log.New(logfile, "", log.LstdFlags)
|
||||
|
||||
args := os.Args
|
||||
// args[1] : 나를 시작한 pid. pid가 종료될 때 까지 기다림
|
||||
// args[2] : target 폴더
|
||||
// args[3:] : 다시 시작할 때 넘겨줄 arguments(프로세스 이름 포함)
|
||||
fmt.Println(args)
|
||||
stdlog.Println(args)
|
||||
|
||||
pid, err := strconv.Atoi(args[1])
|
||||
if err != nil {
|
||||
panic(err)
|
||||
stdlog.Fatal(err)
|
||||
}
|
||||
proc, err := os.FindProcess(pid)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
stdlog.Fatal(err)
|
||||
}
|
||||
proc.Wait()
|
||||
|
||||
selfext, _ := os.Executable()
|
||||
selfext = path.Base(selfext)
|
||||
|
||||
entries, _ := os.ReadDir(args[2])
|
||||
for _, ent := range entries {
|
||||
@ -74,16 +79,27 @@ func main() {
|
||||
|
||||
if ent.IsDir() {
|
||||
if err := os.MkdirAll(ent.Name(), 0775); err != nil {
|
||||
panic(err)
|
||||
stdlog.Fatal(err)
|
||||
}
|
||||
} else {
|
||||
if err := copy(path.Join(args[2], ent.Name()), ent.Name()); err != nil {
|
||||
panic(err)
|
||||
stdlog.Println("copy failed :", path.Join(args[2], ent.Name()), ent.Name())
|
||||
stdlog.Fatal(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
os.RemoveAll(args[2])
|
||||
err = os.RemoveAll(args[2])
|
||||
if err != nil {
|
||||
stdlog.Println("os.RemoveAll failed :", args[2], err)
|
||||
}
|
||||
|
||||
err = os.Chmod(args[3], 0775)
|
||||
if err != nil {
|
||||
stdlog.Println("os.Chmod failed :", err)
|
||||
}
|
||||
|
||||
stdlog.Println("exec.Command :", args)
|
||||
cmd := exec.Command(args[3], args[4:]...)
|
||||
cmd.Start()
|
||||
}
|
||||
|
||||
@ -9,7 +9,6 @@ import (
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
)
|
||||
|
||||
@ -26,7 +25,7 @@ func (h *houstonHandler) GetAgents(w http.ResponseWriter, r *http.Request) {
|
||||
func (h *houstonHandler) GetDeploySources(w http.ResponseWriter, r *http.Request) {
|
||||
files, err := os.ReadDir(h.deployPath)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@ -62,7 +61,7 @@ func (h *houstonHandler) UploadDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
// </form>
|
||||
file, header, err := r.FormFile("file")
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -70,7 +69,7 @@ func (h *houstonHandler) UploadDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
|
||||
contents, err := io.ReadAll(file)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@ -89,7 +88,7 @@ func (h *houstonHandler) UploadDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
}
|
||||
|
||||
if err = os.MkdirAll(path.Dir(filename), 0775); err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@ -97,7 +96,7 @@ func (h *houstonHandler) UploadDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
// 파일 저장
|
||||
err = os.WriteFile(filename, contents, 0644)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@ -119,7 +118,7 @@ func (h *houstonHandler) DeleteDeploySource(w http.ResponseWriter, r *http.Reque
|
||||
// deploys 폴더는 파일시스템 서비스이므로 다운로드 가능
|
||||
targetpath := path.Join(h.deployPath, name, version)
|
||||
if err := os.RemoveAll(targetpath); err != nil {
|
||||
logger.Println("deleteDeploySource failed :", err)
|
||||
shared.Logger().Println("deleteDeploySource failed :", err)
|
||||
w.WriteHeader(http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
@ -139,7 +138,7 @@ func (h *houstonHandler) Deploy(w http.ResponseWriter, r *http.Request) {
|
||||
var targets []string
|
||||
if len(traws) > 0 {
|
||||
if err := json.Unmarshal([]byte(traws), &targets); err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -153,7 +152,7 @@ func (h *houstonHandler) Deploy(w http.ResponseWriter, r *http.Request) {
|
||||
relPath := path.Join(h.deployPath, name, version)
|
||||
files, err := os.ReadDir(relPath)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -200,7 +199,7 @@ func (h *houstonHandler) Undeploy(w http.ResponseWriter, r *http.Request) {
|
||||
var targets []string
|
||||
if len(traws) > 0 {
|
||||
if err := json.Unmarshal([]byte(traws), &targets); err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -236,7 +235,7 @@ func (h *houstonHandler) StartProcess(w http.ResponseWriter, r *http.Request) {
|
||||
var targets []string
|
||||
if len(traws) > 0 {
|
||||
if err := json.Unmarshal([]byte(traws), &targets); err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -275,7 +274,7 @@ func (h *houstonHandler) StopProcess(w http.ResponseWriter, r *http.Request) {
|
||||
var targets []string
|
||||
if len(traws) > 0 {
|
||||
if err := json.Unmarshal([]byte(traws), &targets); err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
@ -312,7 +311,7 @@ func (h *houstonHandler) UploadLogs(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
var targets []string
|
||||
if err := json.Unmarshal([]byte(traws), &targets); err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@ import (
|
||||
"runtime/debug"
|
||||
"strings"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -57,7 +57,7 @@ func (h *houstonHandler) RegisterHandlers(serveMux *http.ServeMux, prefix string
|
||||
return err
|
||||
}
|
||||
|
||||
logger.Printf("houstonHandler registed. deployPath : %s, downloadPath : %s", h.deployPath, h.downloadPath)
|
||||
shared.Logger().Printf("houstonHandler registed. deployPath : %s, downloadPath : %s", h.deployPath, h.downloadPath)
|
||||
|
||||
if len(prefix) > 0 {
|
||||
prefix = "/" + prefix
|
||||
@ -74,7 +74,7 @@ func (h *houstonHandler) RegisterHandlers(serveMux *http.ServeMux, prefix string
|
||||
defer func() {
|
||||
s := recover()
|
||||
if s != nil {
|
||||
logger.Println(s)
|
||||
shared.Logger().Println(s)
|
||||
debug.PrintStack()
|
||||
}
|
||||
io.Copy(io.Discard, r.Body)
|
||||
@ -107,7 +107,7 @@ func (h *houstonHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
defer func() {
|
||||
s := recover()
|
||||
if s != nil {
|
||||
logger.Println(s)
|
||||
shared.Logger().Println(s)
|
||||
debug.PrintStack()
|
||||
}
|
||||
}()
|
||||
@ -132,7 +132,7 @@ func (h *houstonHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
method, ok := h.methods[strings.ToLower(operation)]
|
||||
if !ok {
|
||||
// 없는 operation
|
||||
logger.Println("fail to call api. operation is not valid :", operation)
|
||||
shared.Logger().Println("fail to call api. operation is not valid :", operation)
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
@ -7,8 +7,6 @@ import (
|
||||
"reflect"
|
||||
"sync"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
"repositories.action2quare.com/ayo/houston/shared/protos"
|
||||
)
|
||||
@ -75,7 +73,7 @@ func (sp *hostPool) regist(desc *protos.OperationQueryRequest) (string, chan *op
|
||||
sp.hosts[desc.Hostname] = host
|
||||
|
||||
test, _ := json.Marshal(sp.hosts)
|
||||
logger.Println(string(test))
|
||||
shared.Logger().Println(string(test))
|
||||
return desc.Hostname, host.opChan
|
||||
}
|
||||
|
||||
@ -90,7 +88,7 @@ func (sp *hostPool) refresh(desc *protos.OperationQueryRequest) {
|
||||
}
|
||||
|
||||
test, _ := json.Marshal(sp.hosts)
|
||||
logger.Println(string(test))
|
||||
shared.Logger().Println(string(test))
|
||||
}
|
||||
|
||||
func (sp *hostPool) unregist(key string) {
|
||||
|
||||
@ -6,7 +6,6 @@ import (
|
||||
"net"
|
||||
"os"
|
||||
|
||||
"repositories.action2quare.com/ayo/gocommon/logger"
|
||||
"repositories.action2quare.com/ayo/houston/shared"
|
||||
"repositories.action2quare.com/ayo/houston/shared/protos"
|
||||
|
||||
@ -110,7 +109,7 @@ type Operation interface {
|
||||
func loadServerConfig() serverConfig {
|
||||
configFile, err := os.Open("config.json")
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
return serverConfig{
|
||||
GrpcPort: 8080,
|
||||
}
|
||||
@ -126,14 +125,14 @@ func loadServerConfig() serverConfig {
|
||||
dec := json.NewDecoder(configFile)
|
||||
err = dec.Decode(&config)
|
||||
if err != nil {
|
||||
logger.Error(err)
|
||||
shared.Logger().Println(err)
|
||||
return serverConfig{
|
||||
GrpcPort: 8080,
|
||||
}
|
||||
}
|
||||
|
||||
if config.Houston == nil {
|
||||
logger.Error(`"houston" object is missing in config.json`)
|
||||
shared.Logger().Println(`"houston" object is missing in config.json`)
|
||||
return serverConfig{
|
||||
GrpcPort: 8080,
|
||||
}
|
||||
@ -167,7 +166,7 @@ type houstonServer struct {
|
||||
}
|
||||
|
||||
func (hs *houstonServer) Start() error {
|
||||
logger.Println("houston server is started at port", hs.port)
|
||||
shared.Logger().Println("houston server is started at port", hs.port)
|
||||
lis, err := net.Listen("tcp", fmt.Sprintf("0.0.0.0:%d", hs.port))
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
28
shared/logger.go
Normal file
28
shared/logger.go
Normal file
@ -0,0 +1,28 @@
|
||||
package shared
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
)
|
||||
|
||||
var defLogger *log.Logger
|
||||
|
||||
func InitLogger() {
|
||||
name, _ := os.Executable()
|
||||
base := path.Base(name)
|
||||
|
||||
logfile, _ := os.OpenFile(base+".log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666)
|
||||
defLogger = log.New(logfile, "", log.LstdFlags)
|
||||
}
|
||||
|
||||
func Logger() *log.Logger {
|
||||
return defLogger
|
||||
}
|
||||
|
||||
func CloseLogger() {
|
||||
outfile := defLogger.Writer().(*os.File)
|
||||
if outfile != nil {
|
||||
outfile.Close()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user