SWDEV-301667 - Logging upgrades

- Use AMD_LOG_LEVEL_SIZE in MBs to set log file size truncation, by default its 2048 MB

Change-Id: Ia2f87e8c6b94148e30edfb602b279f93630817c3
This commit is contained in:
Saleel Kudchadker
2024-09-28 16:42:29 +00:00
parent 292842ad28
commit 35e03ea0d0
3 changed files with 29 additions and 8 deletions
+24 -5
View File
@@ -40,15 +40,33 @@
namespace amd {
FILE* outFile = stderr;
const size_t maxLogSize = AMD_LOG_LEVEL_SIZE * Mi;
// ================================================================================================
void report_warning(const char* message) { fprintf(outFile, "Warning: %s\n", message); }
void truncate_log_file() {
if (outFile != stderr) {
fseek(outFile, 0, SEEK_END);
long size = ftell(outFile);
if (size > maxLogSize) {
if (nullptr == freopen(NULL, "w", outFile)) {
outFile = stderr;
}
}
}
}
// ================================================================================================
void report_warning(const char* message) {
truncate_log_file();
fprintf(outFile, "Warning: %s\n", message);
}
// ================================================================================================
void log_entry(LogLevel level, const char* file, int line, const char* message) {
if (level == LOG_NONE) {
return;
}
truncate_log_file();
fprintf(outFile, ":%d:%s:%d: %s\n", level, file, line, message);
fflush(outFile);
}
@@ -67,12 +85,10 @@ void log_timestamped(LogLevel level, const char* file, int line, const char* mes
if (level == LOG_NONE) {
return;
}
#if 0
fprintf(outFile, ":%d:%s:%d: (%010lld) %s\n", level, file, line, time, message);
#else // if you prefer fixed-width fields
truncate_log_file();
fprintf(outFile, ":% 2d:%15s:% 5d: (%010lld) us %s\n", level, file, line, time / 1000ULL,
message);
#endif
fflush(outFile);
}
@@ -91,6 +107,7 @@ void log_printf(LogLevel level, const char* file, int line, const char* format,
va_end(ap);
uint64_t timeUs = Os::timeNanos() / 1000ULL;
truncate_log_file();
fprintf(outFile, ":%d:%-25s:%-4d: %010lu us: %s %s\n", level, file, line,
timeUs, pidtid.str().c_str(),message);
@@ -112,6 +129,8 @@ void log_printf(LogLevel level, const char* file, int line, uint64_t* start,
va_end(ap);
uint64_t timeUs = Os::timeNanos() / 1000ULL;
truncate_log_file();
if (start == 0 || *start == 0) {
fprintf(outFile, ":%d:%-25s:%-4d: %010lu us: %s %s\n", level, file, line,
timeUs, pidtid.str().c_str(), message);