mirror of
https://github.com/neovim/neovim.git
synced 2026-04-17 21:12:51 +00:00
feat(logs)!: move logs to stdpath("state")/logs
This commit is contained in:
@@ -20,6 +20,7 @@ API
|
||||
• |nvim_create_autocmd()|, |nvim_exec_autocmds()| and |nvim_clear_autocmds()|
|
||||
no longer treat an empty non-nil pattern as nil.
|
||||
• |nvim_clear_autocmds()| no longer treats an empty array event as nil.
|
||||
• `stdpath("log")` moved to `stdpath("state")/logs`.
|
||||
|
||||
DIAGNOSTICS
|
||||
|
||||
|
||||
@@ -1405,12 +1405,15 @@ CACHE DIRECTORY (DEFAULT) ~
|
||||
Unix: ~/.cache ~/.cache/nvim
|
||||
Windows: ~/AppData/Local/Temp ~/AppData/Local/Temp/nvim-data
|
||||
|
||||
LOG DIRECTORY (DEFAULT) ~
|
||||
*$XDG_STATE_HOME*/.../logs Nvim: stdpath("log") >
|
||||
Unix: Not applicable ~/.local/state/nvim/logs
|
||||
Windows: Not applicable ~/AppData/Local/nvim-data/logs
|
||||
|
||||
LOG FILE (DEFAULT) ~
|
||||
`$NVIM_LOG_FILE` Nvim: stdpath("log")/nvim.log >
|
||||
Unix: ~/.local/state/nvim ~/.local/state/nvim/nvim.log
|
||||
Windows: ~/AppData/Local/nvim-data ~/AppData/Local/nvim-data/nvim.log
|
||||
|
||||
Note that stdpath("log") is currently an alias for stdpath("state").
|
||||
Unix: ~/.local/state/nvim ~/.local/state/nvim/logs/nvim.log
|
||||
Windows: ~/AppData/Local/nvim-data ~/AppData/Local/nvim-data/logs/nvim.log
|
||||
|
||||
ADDITIONAL CONFIGS DIRECTORY (DEFAULT) ~
|
||||
*$XDG_CONFIG_DIRS* Nvim: stdpath("config_dirs") >
|
||||
@@ -1448,8 +1451,8 @@ LOG FILE *log* *$NVIM_LOG_FILE* *E5430*
|
||||
Besides 'debug' and 'verbose', Nvim keeps a general log file for internal
|
||||
debugging, plugins and RPC clients. >
|
||||
:echo $NVIM_LOG_FILE
|
||||
Default location is stdpath("log")/log ($XDG_STATE_HOME/nvim/nvim.log) unless
|
||||
that path is inaccessible or $NVIM_LOG_FILE was set before |startup|.
|
||||
Default location is stdpath("log")/nvim.log ($XDG_STATE_HOME/nvim/logs/nvim.log)
|
||||
unless that path is inaccessible or $NVIM_LOG_FILE was set before |startup|.
|
||||
|
||||
|
||||
vim:et:tw=78:ts=8:sw=4:ft=help:norl:
|
||||
|
||||
@@ -7161,7 +7161,7 @@ static void f_stdpath(typval_T *argvars, typval_T *rettv, EvalFuncData fptr)
|
||||
} else if (strequal(p, "state")) {
|
||||
rettv->vval.v_string = get_xdg_home(kXDGStateHome);
|
||||
} else if (strequal(p, "log")) {
|
||||
rettv->vval.v_string = get_xdg_home(kXDGStateHome);
|
||||
rettv->vval.v_string = concat_fnames_realloc(get_xdg_home(kXDGStateHome), "logs", true);
|
||||
} else if (strequal(p, "run")) {
|
||||
rettv->vval.v_string = stdpaths_get_xdg_var(kXDGRuntimeDir);
|
||||
} else if (strequal(p, "config_dirs")) {
|
||||
|
||||
@@ -58,9 +58,9 @@ static bool log_try_create(char *fname)
|
||||
|
||||
/// Initializes the log file path and sets $NVIM_LOG_FILE if empty.
|
||||
///
|
||||
/// Tries $NVIM_LOG_FILE, or falls back to $XDG_STATE_HOME/nvim/nvim.log. Failed
|
||||
/// initialization indicates either a bug in expand_env() or both $NVIM_LOG_FILE
|
||||
/// and $HOME environment variables are undefined.
|
||||
/// Tries $NVIM_LOG_FILE, or falls back to $XDG_STATE_HOME/nvim/logs/nvim.log.
|
||||
/// Failed initialization indicates either a bug in expand_env() or both
|
||||
/// $NVIM_LOG_FILE and $HOME environment variables are undefined.
|
||||
static void log_path_init(void)
|
||||
{
|
||||
size_t size = sizeof(log_file_path);
|
||||
@@ -75,8 +75,8 @@ static void log_path_init(void)
|
||||
// Used by _core/log.lua:check_log_file to validate logfile on startup.
|
||||
os_setenv("__NVIM_LOG_FILE_WANT", log_file_path, true);
|
||||
}
|
||||
// Make $XDG_STATE_HOME if it does not exist.
|
||||
char *loghome = get_xdg_home(kXDGStateHome);
|
||||
// Make $XDG_STATE_HOME/logs if it does not exist.
|
||||
char *loghome = concat_fnames_realloc(get_xdg_home(kXDGStateHome), "logs", true);
|
||||
char *failed_dir = NULL;
|
||||
int log_dir_failure = 0;
|
||||
if (!os_isdir(loghome)) {
|
||||
@@ -84,7 +84,7 @@ static void log_path_init(void)
|
||||
}
|
||||
XFREE_CLEAR(loghome);
|
||||
// Invalid $NVIM_LOG_FILE or failed to expand; fall back to default.
|
||||
char *defaultpath = stdpaths_user_state_subpath("nvim.log", 0, true);
|
||||
char *defaultpath = stdpaths_user_state_subpath("logs/nvim.log", 0, true);
|
||||
size_t len = xstrlcpy(log_file_path, defaultpath, size);
|
||||
xfree(defaultpath);
|
||||
// Fall back to $CWD/nvim.log
|
||||
|
||||
@@ -260,7 +260,7 @@ describe('startup defaults', function()
|
||||
NVIM_LOG_FILE = '', -- Empty is invalid.
|
||||
},
|
||||
})
|
||||
eq(xdgstatedir .. '/nvim.log', t.fix_slashes(eval('$NVIM_LOG_FILE')))
|
||||
eq(xdgstatedir .. '/logs/nvim.log', t.fix_slashes(eval('$NVIM_LOG_FILE')))
|
||||
end)
|
||||
|
||||
it('defaults to stdpath("log")/nvim.log if invalid', function()
|
||||
@@ -271,7 +271,7 @@ describe('startup defaults', function()
|
||||
NVIM_LOG_FILE = '.', -- Any directory is invalid.
|
||||
},
|
||||
})
|
||||
eq(xdgstatedir .. '/nvim.log', t.fix_slashes(eval('$NVIM_LOG_FILE')))
|
||||
eq(xdgstatedir .. '/logs/nvim.log', t.fix_slashes(eval('$NVIM_LOG_FILE')))
|
||||
-- Avoid "failed to open $NVIM_LOG_FILE" noise in test output.
|
||||
expect_exit(command, 'qall!')
|
||||
end)
|
||||
@@ -928,7 +928,7 @@ describe('stdpath()', function()
|
||||
clear({ env = { NVIM_APPNAME = appname, NVIM_LOG_FILE = testlog } })
|
||||
eq(appname, fn.fnamemodify(fn.stdpath('config'), ':t'))
|
||||
eq(appname, fn.fnamemodify(fn.stdpath('cache'), ':t'))
|
||||
eq(maybe_data(appname), fn.fnamemodify(fn.stdpath('log'), ':t'))
|
||||
eq(maybe_data(appname), fn.fnamemodify(fn.stdpath('log'), ':h:t'))
|
||||
eq(maybe_data(appname), fn.fnamemodify(fn.stdpath('data'), ':t'))
|
||||
eq(maybe_data(appname), fn.fnamemodify(fn.stdpath('state'), ':t'))
|
||||
-- config_dirs and data_dirs are empty on windows, so don't check them on
|
||||
|
||||
Reference in New Issue
Block a user