1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-03-13 02:05:40 +08:00

Merge pull request #68 from SpaceVim/SpaceVim_logger

SpaceVim logger
This commit is contained in:
Wang Shidong 2017-01-08 23:50:27 +08:00 committed by GitHub
commit 438f3fdf2b
7 changed files with 105 additions and 2 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@ doc/tags
*-rplugin~
*rplugin.vim
/config/local.vim
.SpaceVim.log

View File

@ -1,4 +1,4 @@
<?xml version="1.0"?>
<users>
<user>14716157352C631AD40087A3D69C499B</user>
</users>
</users>

View File

@ -84,6 +84,16 @@ 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
""
" 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 = []
""

View File

@ -0,0 +1,67 @@
let s:logger_level = g:spacevim_debug_level
let s:levels = ['Info', 'Warn', 'Error']
let s:logger_file = expand('~/.SpaceVim/.SpaceVim.log')
""
" @public
" Set debug level of SpaceVim, by default it is 1. all message will be logged.
"
" 1 : log all the message.
"
" 2 : log warning and error message
"
" 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
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, '')
echo logs[0]
return join(filter(logs, "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \[" . s:levels[l] . "\]'"), "\n")
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

View File

@ -1,3 +1,4 @@
scriptencoding utf-8
let s:plugins = {}
let s:plugins.core = [

View File

@ -82,6 +82,17 @@ 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_debug_level*
Set the debug level of SpaceVim, by default it is 1.
*g:spacevim_plugin_groups*
groups of plugins should be loaded.
@ -119,5 +130,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 1. all message will be logged.
1 : log all the message.
2 : log warning and error message
3 : 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:

View File

@ -16,4 +16,4 @@
<lastmod>2017-01-08T05:59:47+00:00</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>
</urlset>