dilog

package module
v1.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2022 License: BSD-3-Clause Imports: 5 Imported by: 0

README

dilog

travisCI

screenshot

웹용 로그서버 입니다. 간혹 조직에서 만들어지는 툴에 대해서 로그 기록이 필요한 경우가 있습니다. 프로젝트 매니징툴의 로그를 기록하기위해 만들었지만, 다른툴에서도 활용할 수 있도록 제작했습니다.

Download

오직 실행파일 하나면 됩니다. 하나의 실행파일로 클라이언트 명령어, 웹서버 및 restAPI 기능을 사용할 수 있습니다.

mongoDB 설치, 실행

이곳에서 mongoDB에 대해서 자세히 다루지 않습니다.

monogoDB를 설치합니다.

$ sudo yum install mongodb mongodb-server // CentOS
$ brew install mongodb // macOS

monogoDB 실행

# mongod
$ brew services start mongodb // macOS
로그서버 실행

실행파일로 서버를 실행할 수 있습니다.

# dilog -http :80

mongodb 서버 IP가 10.0.20.30 이고 dilog를 :8080 포트로 실행하는 방법은 아래와 같습니다.

$ dilog -http :8080 -dbip 10.0.20.30
로그추가: Commandline

기본적으로 툴이름과 로그내용만 작성하더라도 로그를 기록할 수 있습니다.

$ dilog -tool 툴이름 -log="로그내용"

다른 인수들을 활용하여 로그를 처리할 수 있습니다.

예시 : toolA 에서 circle 프로젝트 SS_0010_org 샷에 "A버튼을 눌렀다." 라는 로그를 365일 보관

$ dilog -tool tooA -project circle -slug SS_0010_org -log "A버튼을 눌렀다." -keep 365
로그추가: RestAPI
  • curl을 이용해서 로그를 POST하는 방법
$ curl -X POST -d "project=circle&slug=SS_0010_org&tool=csi3&user=woong&keep=180&log=log_text" http://127.0.0.1:8080/api/setlog
로그삭제: Commandline

아래 명령어를 통해서 시간이 지난 로그를 일괄 삭제할 수 있습니다.

$ dilog -rm

id를 이용해서 하나의 로그를 삭제할 수 있습니다.

$ dilog -rmid 0000000000000
로그접근

아래 형태의 url을 통해서 로그서버에 접근할 수 있습니다.

http://127.0.0.1/search?project=circle&slug=SS_0010

검색: daily, 2019-06-10

http://127.0.0.1/search?searchword=daily+2019-06-10

응용

여러 응용법이 있습니다. 아래처럼 로그를 입력합니다. circle 프로젝트에 SS_0010_org 샷의 데일리 로그라고 생각해보겠습니다.

$ dilog -tool terminal -project circle -slug SS_0010_org -log "daily: ~/project/circle/test.mov"

데이터 입력후 웹에서 검색을 할 수 있습니다. 로그내용에 경로가 있다면 dilink 프로토콜과 연동되며 응용프로그램과 물릴 수 있습니다. screenshot

Developer

Need

빌드를 위해서 아래 라이브러리를 사용합니다.

$ go get github.com/GeertJohan/go.rice
$ go get github.com/GeertJohan/go.rice/rice

License

BSD 3-Clause License

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// DBNAME 은 데이터베이스 이름이다.
	DBNAME = "dilog"
	// COLLECTION 은 MongoDB Collection 이름이다.
	COLLECTION = "log"
)

Functions

func Add added in v1.0.4

func Add(dbip, ip, logstr, project, slug, tool, user, addtime string, keep int) error

Add 함수는 log 를 추가합니다.

func Remove added in v1.0.4

func Remove(dbip, id string) error

Remove 함수는 log id를 이용해서 로그를 삭제합니다.

func Timecheck added in v1.0.4

func Timecheck(timestr string, keepdate int) (bool, error)

Timecheck 함수는 RFC3339 시간문자열과 보관일을 받아서 보관일이 지난지 체크한다.

Types

type Log

type Log struct {
	Cip     string // Client IP
	ID      string // log ID
	Keep    int    // 보관일수
	Log     string // 로그내용
	Project string // 프로젝트
	Slug    string // 로그에 입력되는 Slug 예) 프로젝트 매니징툴에서 사용되는 에셋명 또는 샷명
	Time    string // 로그가 기입된 시간
	Tool    string // 로그가 보내진 툴
	User    string // 유저이름
}

Log 자료구조 이다.

func All added in v1.0.4

func All(dbip string) ([]Log, error)

All 는 DB의 모든 로그를 가지고 옵니다.

func FindTool added in v1.0.4

func FindTool(dbip, toolname string, page, pageMaxItemNum int) ([]Log, int, error)

FindTool 함수는 툴이름을 이용해서 log를 검색합니다.

func FindToolProject added in v1.0.4

func FindToolProject(dbip, toolname, project string, page, pageMaxItemNum int) ([]Log, int, error)

FindToolProject 함수는 툴이름, 프로젝트 이름을 이용해서 log를 검색합니다.

func FindToolProjectSlug added in v1.0.4

func FindToolProjectSlug(dbip, toolname, project, slug string, page, pageMaxItemNum int) ([]Log, int, error)

FindToolProjectSlug 함수는 툴이름, 프로젝트, Slug를 입력받아서 로그를 검색한다.

func Search(dbip, words string, page, pageMaxItemNum int) ([]Log, int, error)

Search 함수는 검색어를 이용해서 log를 검색합니다.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL