From 93f396a4335da70aac4dfa146bebba323424b157 Mon Sep 17 00:00:00 2001 From: crusader Date: Wed, 22 Aug 2018 16:29:27 +0900 Subject: [PATCH] project initialized --- .gitignore | 68 +++++++++++++++++++++++++++++++++++++++++++ .vscode/launch.json | 32 ++++++++++++++++++++ .vscode/settings.json | 3 ++ Gopkg.lock | 52 +++++++++++++++++++++++++++++++++ Gopkg.toml | 38 ++++++++++++++++++++++++ log.go | 45 ++++++++++++++++++++++++++++ log_test.go | 14 +++++++++ 7 files changed, 252 insertions(+) create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 Gopkg.lock create mode 100644 Gopkg.toml create mode 100644 log.go create mode 100644 log_test.go diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3733e36 --- /dev/null +++ b/.gitignore @@ -0,0 +1,68 @@ +# Created by .ignore support plugin (hsz.mobi) +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff: +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/dictionaries + +# Sensitive or high-churn files: +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.xml +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml + +# Gradle: +.idea/**/gradle.xml +.idea/**/libraries + +# Mongo Explorer plugin: +.idea/**/mongoSettings.xml + +## File-based project format: +*.iws + +## Plugin-specific files: + +# IntelliJ +/out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties +### Go template +# Binaries for programs and plugins +*.exe +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 +.glide/ +.idea/ +*.iml + +vendor/ +glide.lock +.DS_Store +dist/ +debug diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..2ca2b1d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,32 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug", + "type": "go", + "request": "launch", + "mode": "debug", + "remotePath": "", + "port": 2345, + "host": "127.0.0.1", + "program": "${workspaceRoot}/main.go", + "env": {}, + "args": [], + "showLog": true + }, + { + "name": "File Debug", + "type": "go", + "request": "launch", + "mode": "debug", + "remotePath": "", + "port": 2345, + "host": "127.0.0.1", + "program": "${fileDirname}", + "env": {}, + "args": [], + "showLog": true + } + + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..20af2f6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +// Place your settings in this file to overwrite default and user settings. +{ +} \ No newline at end of file diff --git a/Gopkg.lock b/Gopkg.lock new file mode 100644 index 0000000..defe8a6 --- /dev/null +++ b/Gopkg.lock @@ -0,0 +1,52 @@ +# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. + + +[[projects]] + branch = "master" + name = "git.loafle.net/overflow/config-go" + packages = ["."] + revision = "c4066fa55db336afc618d64156f703f59138f791" + +[[projects]] + name = "github.com/BurntSushi/toml" + packages = ["."] + revision = "b26d9c308763d68093482582cea63d69be07a0f0" + version = "v0.3.0" + +[[projects]] + name = "go.uber.org/atomic" + packages = ["."] + revision = "1ea20fb1cbb1cc08cbd0d913a96dead89aa18289" + version = "v1.3.2" + +[[projects]] + name = "go.uber.org/multierr" + packages = ["."] + revision = "3c4937480c32f4c13a875a1829af76c98ca3d40a" + version = "v1.1.0" + +[[projects]] + name = "go.uber.org/zap" + packages = [ + ".", + "buffer", + "internal/bufferpool", + "internal/color", + "internal/exit", + "zapcore" + ] + revision = "ff33455a0e382e8a81d14dd7c922020b6b5e7982" + version = "v1.9.1" + +[[projects]] + name = "gopkg.in/yaml.v2" + packages = ["."] + revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183" + version = "v2.2.1" + +[solve-meta] + analyzer-name = "dep" + analyzer-version = 1 + inputs-digest = "7bb878a55c5355db4bd0abeab172117c1d884e80d778d4d8b49600144a7418f2" + solver-name = "gps-cdcl" + solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml new file mode 100644 index 0000000..1fd9c0f --- /dev/null +++ b/Gopkg.toml @@ -0,0 +1,38 @@ +# Gopkg.toml example +# +# Refer to https://github.com/golang/dep/blob/master/docs/Gopkg.toml.md +# for detailed Gopkg.toml documentation. +# +# required = ["github.com/user/thing/cmd/thing"] +# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"] +# +# [[constraint]] +# name = "github.com/user/project" +# version = "1.0.0" +# +# [[constraint]] +# name = "github.com/user/project2" +# branch = "dev" +# source = "github.com/myfork/project2" +# +# [[override]] +# name = "github.com/x/y" +# version = "2.4.0" +# +# [prune] +# non-go = false +# go-tests = true +# unused-packages = true + + +[[constraint]] + branch = "master" + name = "git.loafle.net/overflow/config-go" + +[[constraint]] + name = "go.uber.org/zap" + version = "1.9.1" + +[prune] + go-tests = true + unused-packages = true diff --git a/log.go b/log.go new file mode 100644 index 0000000..cc9ad60 --- /dev/null +++ b/log.go @@ -0,0 +1,45 @@ +package log + +import ( + "log" + + oc "git.loafle.net/overflow/config-go" + + "go.uber.org/zap" +) + +var logger *zap.Logger + +func Logger() *zap.Logger { + if nil == logger { + log.Panicf("Initialize Logger first to use Logger") + } + return logger +} + +func InitializeLogger(configPath string) error { + var ( + cfg zap.Config + _logger *zap.Logger + err error + ) + + config := oc.New() + + if err = config.Load(&cfg, configPath); nil != err { + log.Printf("Loading of logger config has been failed [%v]", err) + if _logger, err = zap.NewDevelopment(); nil != err { + return err + } + logger = _logger + logger.Info("Logger has been initialized as development mode") + return nil + } + + if _logger, err = cfg.Build(); nil != err { + return err + } + logger = _logger + + return nil +} diff --git a/log_test.go b/log_test.go new file mode 100644 index 0000000..590608e --- /dev/null +++ b/log_test.go @@ -0,0 +1,14 @@ +package log + +import ( + "log" + "testing" +) + +func TestInitializeLogger(t *testing.T) { + if err := InitializeLogger(""); nil != err { + log.Panicf("Failed %v", err) + } + + logger.Infof("Logger has been initialized") +}