From 8841a404354dd57b9d6508ec7539cd2b7e3c3987 Mon Sep 17 00:00:00 2001 From: wsdjeg <wsdjeg@163.com> Date: Sat, 11 Nov 2017 00:36:30 +0800 Subject: [PATCH] Use logger api --- autoload/SpaceVim/logger.vim | 107 +++++++++++------------------------ 1 file changed, 33 insertions(+), 74 deletions(-) diff --git a/autoload/SpaceVim/logger.vim b/autoload/SpaceVim/logger.vim index 8f44b2c7c..78ebd906b 100644 --- a/autoload/SpaceVim/logger.vim +++ b/autoload/SpaceVim/logger.vim @@ -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: