LOG_DISABLE_LOGS compile flag, wrapped f in macros
This commit is contained in:
parent
54e81bac6f
commit
4fdcede9ec
4 changed files with 79 additions and 24 deletions
5
Makefile
5
Makefile
|
@ -302,6 +302,11 @@ k_quants.o: k_quants.c k_quants.h
|
|||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
endif # LLAMA_NO_K_QUANTS
|
||||
|
||||
ifdef LLAMA_DISABLE_LOGS
|
||||
CFLAGS += -DLOG_DISABLE_LOGS
|
||||
CXXFLAGS += -DLOG_DISABLE_LOGS
|
||||
endif # LLAMA_DISABLE_LOGS
|
||||
|
||||
#
|
||||
# Print build information
|
||||
#
|
||||
|
|
|
@ -462,7 +462,9 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
|
|||
}
|
||||
} else if (arg == "-h" || arg == "--help") {
|
||||
gpt_print_usage(argc, argv, default_params);
|
||||
#ifndef LOG_DISABLE_LOGS
|
||||
log_print_usage();
|
||||
#endif // LOG_DISABLE_LOGS
|
||||
exit(0);
|
||||
} else if (arg == "--random-prompt") {
|
||||
params.random_prompt = true;
|
||||
|
@ -502,6 +504,7 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
|
|||
std::istreambuf_iterator<char>(),
|
||||
std::back_inserter(params.grammar)
|
||||
);
|
||||
#ifndef LOG_DISABLE_LOGS
|
||||
// Parse args for logging parameters
|
||||
} else if ( log_param_single_parse( argv[i] ) ) {
|
||||
// Do nothing, log_param_single_parse automatically does it's thing
|
||||
|
@ -519,6 +522,7 @@ bool gpt_params_parse(int argc, char ** argv, gpt_params & params) {
|
|||
break;
|
||||
}
|
||||
// End of Parse args for logging parameters
|
||||
#endif // LOG_DISABLE_LOGS
|
||||
} else {
|
||||
fprintf(stderr, "error: unknown argument: %s\n", arg.c_str());
|
||||
gpt_print_usage(argc, argv, default_params);
|
||||
|
|
85
common/log.h
85
common/log.h
|
@ -371,20 +371,29 @@ inline FILE *_log_handler2(bool change = false, LogTriState disable = LogTriStat
|
|||
// Disables logs entirely at runtime.
|
||||
// Makes LOG() and LOG_TEE() produce no output,
|
||||
// untill enabled back.
|
||||
inline FILE *log_disable()
|
||||
#define LOG_DISABLE() _log_disable()
|
||||
|
||||
// INTERNAL, DO NOT USE
|
||||
inline FILE *_log_disable()
|
||||
{
|
||||
return _log_handler1(true, LogTriStateTrue);
|
||||
}
|
||||
|
||||
// Enables logs at runtime.
|
||||
inline FILE *log_enable()
|
||||
#define LOG_ENABLE() _log_enable()
|
||||
|
||||
// INTERNAL, DO NOT USE
|
||||
inline FILE *_log_enable()
|
||||
{
|
||||
return _log_handler1(true, LogTriStateFalse);
|
||||
}
|
||||
|
||||
// Sets target fir logs, either by a file name or FILE* pointer (stdout, stderr, or any valid FILE*)
|
||||
inline FILE *log_set_target(std::string filename) { return _log_handler1(true, LogTriStateSame, filename); }
|
||||
inline FILE *log_set_target(FILE *target) { return _log_handler2(true, LogTriStateSame, target); }
|
||||
#define LOG_SET_TARGET(target) _log_set_target(target)
|
||||
|
||||
// INTERNAL, DO NOT USE
|
||||
inline FILE *_log_set_target(std::string filename) { return _log_handler1(true, LogTriStateSame, filename); }
|
||||
inline FILE *_log_set_target(FILE *target) { return _log_handler2(true, LogTriStateSame, target); }
|
||||
|
||||
// INTERNAL, DO NOT USE
|
||||
inline FILE *log_handler() { return _log_handler1(); }
|
||||
|
@ -393,32 +402,32 @@ inline void log_test()
|
|||
{
|
||||
std::cerr << "LOGDBG: LOGTEST" << std::endl;
|
||||
|
||||
log_disable();
|
||||
LOG_DISABLE();
|
||||
LOG("01 Hello World to nobody, because logs are disabled!\n")
|
||||
log_enable();
|
||||
LOG_ENABLE();
|
||||
LOG("02 Hello World to default output, which is \"%s\" ( Yaaay, arguments! )!\n", LOG_STRINGIZE(LOG_TARGET))
|
||||
LOG_TEE("03 Hello World to **both** default output and " LOG_TEE_TARGET_STRING "!\n")
|
||||
log_set_target(stderr);
|
||||
LOG_SET_TARGET(stderr);
|
||||
LOG("04 Hello World to stderr!\n")
|
||||
LOG_TEE("05 Hello World TEE with double printing to stderr prevented!\n")
|
||||
log_set_target(LOG_DEFAULT_FILE_NAME);
|
||||
LOG_SET_TARGET(LOG_DEFAULT_FILE_NAME);
|
||||
LOG("06 Hello World to default log file!\n")
|
||||
log_set_target(stdout);
|
||||
LOG_SET_TARGET(stdout);
|
||||
LOG("07 Hello World to stdout!\n")
|
||||
log_set_target(LOG_DEFAULT_FILE_NAME);
|
||||
LOG_SET_TARGET(LOG_DEFAULT_FILE_NAME);
|
||||
LOG("08 Hello World to default log file again!\n")
|
||||
log_disable();
|
||||
LOG_DISABLE();
|
||||
LOG("09 Hello World _1_ into the void!\n")
|
||||
log_enable();
|
||||
LOG_ENABLE();
|
||||
LOG("10 Hello World back from the void ( you should not see _1_ in the log or the output )!\n")
|
||||
log_disable();
|
||||
log_set_target("llama.anotherlog.log");
|
||||
LOG_DISABLE();
|
||||
LOG_SET_TARGET("llama.anotherlog.log");
|
||||
LOG("11 Hello World _2_ to nobody, new target was selected but logs are still disabled!\n")
|
||||
log_enable();
|
||||
LOG_ENABLE();
|
||||
LOG("12 Hello World this time in a new file ( you should not see _2_ in the log or the output )?\n")
|
||||
log_set_target("llama.yetanotherlog.log");
|
||||
LOG_SET_TARGET("llama.yetanotherlog.log");
|
||||
LOG("13 Hello World this time in yet new file?\n")
|
||||
log_set_target(LOG_FILENAME_GENERATOR("llama_autonamed", "log"));
|
||||
LOG_SET_TARGET(LOG_FILENAME_GENERATOR("llama_autonamed", "log"));
|
||||
LOG("14 Hello World in log with generated filename!\n")
|
||||
|
||||
// exit(0);
|
||||
|
@ -435,12 +444,12 @@ inline bool log_param_single_parse(std::string param)
|
|||
}
|
||||
else if (std::string("--log-disable").compare(param) == 0)
|
||||
{
|
||||
log_disable();
|
||||
LOG_DISABLE();
|
||||
return true;
|
||||
}
|
||||
else if (std::string("--log-enable").compare(param) == 0)
|
||||
{
|
||||
log_enable();
|
||||
LOG_ENABLE();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -459,7 +468,7 @@ inline bool log_param_pair_parse(bool check_but_dont_parse, std::string param, s
|
|||
{
|
||||
return true;
|
||||
}
|
||||
log_set_target(LOG_FILENAME_GENERATOR(next.empty() ? "unnamed" : next, "log"));
|
||||
LOG_SET_TARGET(LOG_FILENAME_GENERATOR(next.empty() ? "unnamed" : next, "log"));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -482,7 +491,10 @@ inline void log_print_usage()
|
|||
fprintf(stdout, " Log file will be tagged with unique ID and written as \"<name>.<ID>.log\"\n"); /* */
|
||||
}
|
||||
|
||||
inline void log_dump_cmdline(int argc, char **argv)
|
||||
#define LOG_DUMP_CMDLINE( argc, argv ) _log_dump_cmdline(argc,argv)
|
||||
|
||||
// INTERNAL, DO NOT USE
|
||||
inline void _log_dump_cmdline(int argc, char **argv)
|
||||
{
|
||||
std::string buf;
|
||||
for (int i = 0; i < argc; ++i)
|
||||
|
@ -564,3 +576,34 @@ inline std::string _log_var_to_string(std::vector<int> var)
|
|||
return buf.append(" ]"); \
|
||||
}() \
|
||||
.c_str()
|
||||
|
||||
|
||||
#ifdef LOG_DISABLE_LOGS
|
||||
|
||||
#undef LOG
|
||||
#define LOG(...) // dummy stub
|
||||
#undef LOGLN
|
||||
#define LOGLN(...) // dummy stub
|
||||
|
||||
#undef LOG_TEE
|
||||
#define LOG_TEE(...) fprintf(stderr, __VA_ARGS__); // convert to normal fprintf
|
||||
|
||||
#undef LOG_TEELN
|
||||
#define LOG_TEELN(...) fprintf(stderr, __VA_ARGS__); // convert to normal fprintf
|
||||
|
||||
#undef LOG_DISABLE
|
||||
#define LOG_DISABLE() // dummy stub
|
||||
|
||||
#undef LOG_ENABLE
|
||||
#define LOG_ENABLE() // dummy stub
|
||||
|
||||
#undef LOG_ENABLE
|
||||
#define LOG_ENABLE() // dummy stub
|
||||
|
||||
#undef LOG_SET_TARGET
|
||||
#define LOG_SET_TARGET(...) // dummy stub
|
||||
|
||||
#undef LOG_DUMP_CMDLINE
|
||||
#define LOG_DUMP_CMDLINE(...) // dummy stub
|
||||
|
||||
#endif // LOG_DISABLE_LOGS
|
||||
|
|
|
@ -62,10 +62,11 @@ int main(int argc, char ** argv) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
log_set_target(LOG_FILENAME_GENERATOR("main", "log"));
|
||||
#ifndef LOG_DISABLE_LOGS
|
||||
LOG_SET_TARGET(LOG_FILENAME_GENERATOR("main", "log"));
|
||||
LOG_TEE("Log start\n")
|
||||
|
||||
log_dump_cmdline(argc,argv);
|
||||
LOG_DUMP_CMDLINE(argc,argv);
|
||||
#endif // LOG_DISABLE_LOGS
|
||||
|
||||
// TODO: Dump params ?
|
||||
//LOG("Params perplexity: %s\n", LOG_TOSTR(params.perplexity))
|
||||
|
@ -847,7 +848,9 @@ int main(int argc, char ** argv) {
|
|||
}
|
||||
llama_backend_free();
|
||||
|
||||
#ifndef LOG_DISABLE_LOGS
|
||||
LOG_TEE("Log end\n")
|
||||
#endif // LOG_DISABLE_LOGS
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue