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

Use logger api

This commit is contained in:
wsdjeg 2017-11-11 00:36:30 +08:00
parent e4428baaa2
commit 8841a40435

View File

@ -1,57 +1,28 @@
let s:logger_level = get(g:, 'spacevim_debug_level', 1)
let s:levels = ['Info', 'Warn', 'Error']
let s:logger_file = expand('~/.cache/SpaceVim/SpaceVim.log')
let s:log_temp = []
let s:LOGGER = SpaceVim#api#import('logger')
call s:LOGGER.set_name('SpaceVim')
call s:LOGGER.set_file(expand('~/.cache/SpaceVim/SpaceVim.log'))
call s:LOGGER.set_level(1)
function! SpaceVim#logger#info(msg)
call s:LOGGER.info(a:msg)
""
" @public
" Set debug level of SpaceVim. Default is 1.
"
" 1 : log all messages
"
" 2 : log warning and error messages
"
" 3 : log error messages 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))
else
call add(s:log_temp,s:warpMsg(a:msg,1))
endif
function! SpaceVim#logger#warn(msg)
call s:LOGGER.warn(a:msg)
endfunction
function! SpaceVim#logger#warn(msg) abort
let msg = s:warpMsg(a:msg, 2)
echohl WarningMsg
echomsg msg
echohl NONE
if g:spacevim_enable_debug && s:logger_level <= 2
call s:wite(s:warpMsg(a:msg, 2))
else
call add(s:log_temp,s:warpMsg(a:msg,2))
endif
endfunction
function! SpaceVim#logger#error(msg) abort
if get(g:, 'spacevim_enable_debug', 1) && s:logger_level <= 3
call s:wite(s:warpMsg(a:msg, 3))
else
call add(s:log_temp,s:warpMsg(a:msg,3))
endif
endfunction
function! SpaceVim#logger#error(msg)
function! s:wite(msg) abort
if !isdirectory(expand('~/.cache/SpaceVim/'))
call mkdir(expand('~/.cache/SpaceVim/'), 'p')
endif
let flags = filewritable(s:logger_file) ? 'a' : ''
call writefile([a:msg], s:logger_file, flags)
endfunction
call s:LOGGER.error(a:msg)
endfunction
function! SpaceVim#logger#viewLog(...) abort
let info = "### SpaceVim Options :\n\n"
@ -67,19 +38,8 @@ function! SpaceVim#logger#viewLog(...) abort
let info .= "### SpaceVim runtime log :\n\n"
let info .= "```log\n"
let l = s:logger_level
if filereadable(s:logger_file)
let logs = readfile(s:logger_file, '')
let info .= join(filter(logs,
\ "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \["
\ . s:levels[l] . "\]'"), "\n")
else
let info .= '[ SpaceVim ] : logger file ' . s:logger_file
\ . ' does not exists, only log for current process will be shown!'
let info .= join(filter(s:log_temp,
\ "v:val =~# '\[ SpaceVim \] \[\d\d\:\d\d\:\d\d\] \["
\ . s:levels[l] . "\]'"), "\n")
endif
let info .= s:LOGGER.view(s:LOGGER.level)
let info .= "\n```\n"
if a:0 > 0
if a:1 == 1
@ -100,23 +60,22 @@ function! SpaceVim#logger#viewLog(...) abort
endif
endfunction
""
" @public
" Set debug level of SpaceVim. Default is 1.
"
" 1 : log all messages
"
" 2 : log warning and error messages
"
" 3 : log error messages only
function! SpaceVim#logger#setLevel(level) abort
call s:LOGGER.set_level(a:level)
endfunction
""
" @public
" Set the log output file of SpaceVim. Default is `~/.SpaceVim/.SpaceVim.log`.
function! SpaceVim#logger#setOutput(file) abort
let s:logger_file = a:file
call s:LOGGER.set_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
" vim:set et sw=2 cc=80: