From c046df4956a1c62ed3e5c077ac99b5e79ce29f65 Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Sun, 8 Jan 2017 16:27:18 +0800 Subject: [PATCH 1/4] Add logger --- .gitignore | 1 + autoload/SpaceVim.vim | 7 +++++ autoload/SpaceVim/logger.vim | 53 ++++++++++++++++++++++++++++++++++++ doc/SpaceVim.txt | 21 ++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 autoload/SpaceVim/logger.vim diff --git a/.gitignore b/.gitignore index 94cd3d1fd..905c5d503 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ doc/tags *-rplugin~ *rplugin.vim /config/local.vim +.SpaceVim.log diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim index 65b228c5b..01e2fbd4f 100644 --- a/autoload/SpaceVim.vim +++ b/autoload/SpaceVim.vim @@ -84,6 +84,13 @@ let g:spacevim_plugin_manager = 'dein' " neobundle or dein or vim-plug " let g:spacevim_checkinstall = 0 " < let g:spacevim_checkinstall = 1 +"" +" Enable/Disable debug mode for SpaceVim, by default it is disabled. +" +" to enable it: > +" let g:spacevim_enable_debug = 1 +" < +let g:spacevim_enable_debug = 0 let g:spacevim_hiddenfileinfo = 1 let g:spacevim_plugin_groups_exclude = [] "" diff --git a/autoload/SpaceVim/logger.vim b/autoload/SpaceVim/logger.vim new file mode 100644 index 000000000..0cf8f9650 --- /dev/null +++ b/autoload/SpaceVim/logger.vim @@ -0,0 +1,53 @@ +let s:logger_level = 0 +let s:levels = ['Info', 'Warn', 'Error'] +let s:logger_file = expand('~/.SpaceVim/.SpaceVim.log') +"" +" @public +" Set debug level of SpaceVim, by default it is 0. +" +" 0 : log all the message. +" +" 1 : log warning and error message +" +" 2 : log error message only +function! SpaceVim#logger#setLevel(level) abort + let s:logger_level = a:level +endfunction + +function! s:wite(msg) abort + call writefile([a:msg], s:logger_file, 'a') +endfunction + +function! SpaceVim#logger#info(msg) abort + call s:wite(s:warpMsg(a:msg, 1)) +endfunction + +function! SpaceVim#logger#viewLog(...) abort + let l = a:0 > 0 ? a:1 : 0 + let logs = readfile(s:logger_file, '') + for log in logs + if log =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \[' . s:levels[l] .'\]' + echo log + endif + endfor +endfunction + +"" +" @public +" Set log output file of SpaceVim. by default it is +" `~/.SpaceVim/.SpaceVim.log` +function! SpaceVim#logger#setOutput(file) abort + let s:logger_file = a:file +endfunction + +function! s:warpMsg(msg,l) abort + let time = strftime('%H:%M:%S') + let log = '[ SpaceVim ] [' . time . '] [' . s:levels[a:l - 1] . '] ' . a:msg + return log +endfunction + +function! SpaceVim#logger#echoWarn(msg) abort + echohl WarningMsg + echom s:warpMsg(a:msg, 1) + echohl None +endfunction diff --git a/doc/SpaceVim.txt b/doc/SpaceVim.txt index c3b66cf64..7c2efd39a 100644 --- a/doc/SpaceVim.txt +++ b/doc/SpaceVim.txt @@ -82,6 +82,14 @@ To disable it: let g:spacevim_checkinstall = 0 < + *g:spacevim_enable_debug* +Enable/Disable debug mode for SpaceVim, by default it is disabled. + +to enable it: +> + let g:spacevim_enable_debug = 1 +< + *g:spacevim_plugin_groups* groups of plugins should be loaded. @@ -119,5 +127,18 @@ SpaceVim#Layer({layer}) *SpaceVim#Layer()* Load the {layer} you want : autocompletion : Make SpaceVim support autocompletion. unite : Unite centric work-flow +SpaceVim#logger#setLevel({level}) *SpaceVim#logger#setLevel()* + Set debug level of SpaceVim, by default it is 0. + + 0 : log all the message. + + 1 : log warning and error message + + 2 : log error message only + +SpaceVim#logger#setOutput({file}) *SpaceVim#logger#setOutput()* + Set log output file of SpaceVim. by default it is + `~/.SpaceVim/.SpaceVim.log` + vim:tw=78:ts=8:ft=help:norl: From 65d8e06356a93d59bda94651aceb35037c7c34c8 Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Sun, 8 Jan 2017 18:38:45 +0800 Subject: [PATCH 2/4] Fix lint --- BingSiteAuth.xml | 2 +- autoload/SpaceVim/logger.vim | 32 ++++++++++++++++++++++++-------- autoload/SpaceVim/plugins.vim | 1 + doc/SpaceVim.txt | 8 ++++---- sitemap.xml | 2 +- 5 files changed, 31 insertions(+), 14 deletions(-) diff --git a/BingSiteAuth.xml b/BingSiteAuth.xml index f130d5ab9..04a43a6cf 100644 --- a/BingSiteAuth.xml +++ b/BingSiteAuth.xml @@ -1,4 +1,4 @@ 14716157352C631AD40087A3D69C499B - \ No newline at end of file + diff --git a/autoload/SpaceVim/logger.vim b/autoload/SpaceVim/logger.vim index 0cf8f9650..a90888031 100644 --- a/autoload/SpaceVim/logger.vim +++ b/autoload/SpaceVim/logger.vim @@ -1,26 +1,42 @@ -let s:logger_level = 0 +let s:logger_level = 1 let s:levels = ['Info', 'Warn', 'Error'] let s:logger_file = expand('~/.SpaceVim/.SpaceVim.log') + "" " @public -" Set debug level of SpaceVim, by default it is 0. +" Set debug level of SpaceVim, by default it is 1. all message will be logged. " -" 0 : log all the message. +" 1 : log all the message. " -" 1 : log warning and error message +" 2 : log warning and error message " -" 2 : log error message only +" 3 : log error message only function! SpaceVim#logger#setLevel(level) abort let s:logger_level = a:level endfunction +function! SpaceVim#logger#info(msg) abort + if g:spacevim_enable_debug && s:logger_level <= 1 + call s:wite(s:warpMsg(a:msg, 1)) + endif +endfunction + +function! SpaceVim#logger#warn(msg) abort + if g:spacevim_enable_debug && s:logger_level <= 2 + call s:wite(s:warpMsg(a:msg, 2)) + endif +endfunction + +function! SpaceVim#logger#error(msg) abort + if g:spacevim_enable_debug && s:logger_level <= 3 + call s:wite(s:warpMsg(a:msg, 3)) + endif +endfunction + function! s:wite(msg) abort call writefile([a:msg], s:logger_file, 'a') endfunction -function! SpaceVim#logger#info(msg) abort - call s:wite(s:warpMsg(a:msg, 1)) -endfunction function! SpaceVim#logger#viewLog(...) abort let l = a:0 > 0 ? a:1 : 0 diff --git a/autoload/SpaceVim/plugins.vim b/autoload/SpaceVim/plugins.vim index 90b85ba23..521dcb8bd 100644 --- a/autoload/SpaceVim/plugins.vim +++ b/autoload/SpaceVim/plugins.vim @@ -1,3 +1,4 @@ +scriptencoding utf-8 let s:plugins = {} let s:plugins.core = [ diff --git a/doc/SpaceVim.txt b/doc/SpaceVim.txt index 7c2efd39a..7740df783 100644 --- a/doc/SpaceVim.txt +++ b/doc/SpaceVim.txt @@ -128,13 +128,13 @@ SpaceVim#Layer({layer}) *SpaceVim#Layer()* autocompletion. unite : Unite centric work-flow SpaceVim#logger#setLevel({level}) *SpaceVim#logger#setLevel()* - Set debug level of SpaceVim, by default it is 0. + Set debug level of SpaceVim, by default it is 1. all message will be logged. - 0 : log all the message. + 1 : log all the message. - 1 : log warning and error message + 2 : log warning and error message - 2 : log error message only + 3 : log error message only SpaceVim#logger#setOutput({file}) *SpaceVim#logger#setOutput()* Set log output file of SpaceVim. by default it is diff --git a/sitemap.xml b/sitemap.xml index f20f74309..5bdd1751d 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -16,4 +16,4 @@ 2017-01-08T05:59:47+00:00 daily - \ No newline at end of file + From 03312c8b1e41aa1d80e720b5278e52d4aa384391 Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Sun, 8 Jan 2017 23:02:49 +0800 Subject: [PATCH 3/4] Improve logger --- autoload/SpaceVim.vim | 3 +++ autoload/SpaceVim/logger.vim | 11 ++++------- doc/SpaceVim.txt | 3 +++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim index 01e2fbd4f..bfdb1d631 100644 --- a/autoload/SpaceVim.vim +++ b/autoload/SpaceVim.vim @@ -91,6 +91,9 @@ let g:spacevim_checkinstall = 1 " let g:spacevim_enable_debug = 1 " < let g:spacevim_enable_debug = 0 +"" +" Set the debug level of SpaceVim, by default it is 1. +let g:spacevim_debug_level = 1 let g:spacevim_hiddenfileinfo = 1 let g:spacevim_plugin_groups_exclude = [] "" diff --git a/autoload/SpaceVim/logger.vim b/autoload/SpaceVim/logger.vim index a90888031..37906b31b 100644 --- a/autoload/SpaceVim/logger.vim +++ b/autoload/SpaceVim/logger.vim @@ -1,4 +1,4 @@ -let s:logger_level = 1 +let s:logger_level = g:spacevim_debug_level let s:levels = ['Info', 'Warn', 'Error'] let s:logger_file = expand('~/.SpaceVim/.SpaceVim.log') @@ -17,6 +17,7 @@ endfunction function! SpaceVim#logger#info(msg) abort if g:spacevim_enable_debug && s:logger_level <= 1 + echo s:logger_level call s:wite(s:warpMsg(a:msg, 1)) endif endfunction @@ -39,13 +40,9 @@ endfunction function! SpaceVim#logger#viewLog(...) abort - let l = a:0 > 0 ? a:1 : 0 + let l = a:0 > 0 ? a:1 : 1 let logs = readfile(s:logger_file, '') - for log in logs - if log =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \[' . s:levels[l] .'\]' - echo log - endif - endfor + return join(filter(logs, "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \[' . s:levels[l] .'\]'"), "\n") endfunction "" diff --git a/doc/SpaceVim.txt b/doc/SpaceVim.txt index 7740df783..97b9c5b5b 100644 --- a/doc/SpaceVim.txt +++ b/doc/SpaceVim.txt @@ -90,6 +90,9 @@ to enable it: let g:spacevim_enable_debug = 1 < + *g:spacevim_debug_level* +Set the debug level of SpaceVim, by default it is 1. + *g:spacevim_plugin_groups* groups of plugins should be loaded. From 3f418e680cddd77007f7f9b55d75060f85311e07 Mon Sep 17 00:00:00 2001 From: wsdjeg Date: Sun, 8 Jan 2017 23:45:09 +0800 Subject: [PATCH 4/4] Fix viewLog func --- autoload/SpaceVim/logger.vim | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/autoload/SpaceVim/logger.vim b/autoload/SpaceVim/logger.vim index 37906b31b..1cf7b303f 100644 --- a/autoload/SpaceVim/logger.vim +++ b/autoload/SpaceVim/logger.vim @@ -17,7 +17,6 @@ endfunction function! SpaceVim#logger#info(msg) abort if g:spacevim_enable_debug && s:logger_level <= 1 - echo s:logger_level call s:wite(s:warpMsg(a:msg, 1)) endif endfunction @@ -35,14 +34,16 @@ function! SpaceVim#logger#error(msg) abort endfunction function! s:wite(msg) abort - call writefile([a:msg], s:logger_file, 'a') + let flags = filewritable(s:logger_file) ? 'a' : '' + call writefile([a:msg], s:logger_file, flags) endfunction function! SpaceVim#logger#viewLog(...) abort let l = a:0 > 0 ? a:1 : 1 let logs = readfile(s:logger_file, '') - return join(filter(logs, "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \[' . s:levels[l] .'\]'"), "\n") + echo logs[0] + return join(filter(logs, "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \[" . s:levels[l] . "\]'"), "\n") endfunction ""