commit 6faba6857b5e4cd62deb41541524191a89f31c62 Author: geek Date: Tue Apr 3 17:44:35 2018 +0900 project init 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/glide.yaml b/glide.yaml new file mode 100644 index 0000000..ee60be9 --- /dev/null +++ b/glide.yaml @@ -0,0 +1,2 @@ +package: git.loafle.net/commons/logging-go +import: [] diff --git a/logging.go b/logging.go new file mode 100644 index 0000000..e2f45d0 --- /dev/null +++ b/logging.go @@ -0,0 +1,45 @@ +package logging + +import ( + "log" + + "git.loafle.net/commons/configuration-go" + + "go.uber.org/zap" +) + +var logger *zap.SugaredLogger + +func Logger() *zap.SugaredLogger { + 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 + ) + + conf := configuration.New() + + if err = conf.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.Sugar() + logger.Infof("Logger has been initialized as development mode") + return nil + } + + if _logger, err = cfg.Build(); nil != err { + return err + } + logger = _logger.Sugar() + + return nil +} diff --git a/logging_test.go b/logging_test.go new file mode 100644 index 0000000..e7118d9 --- /dev/null +++ b/logging_test.go @@ -0,0 +1,14 @@ +package logging + +import ( + "log" + "testing" +) + +func TestInitializeLogger(t *testing.T) { + if err := InitializeLogger(""); nil != err { + log.Panicf("Failed %v", err) + } + + logger.Infof("Logger has been initialized") +}