PR #75 adds a new option for displaying the short filename of the log location, which is probably a good idea to have, as in my experience, the whole path of the file is not that useful, especially when the binary is from a build server where the path is something like /var/lib/jenkins/project-name/src/main/directory/foo.cpp.
The current PR does this with some string manipulation at runtime, and is different from the const char* that is currently used, so it doesn't fit that well with the rest of the class. Since C++11 we can now do constexpr functions, so we should be able to do this at compile time(assuming you have optimizations turned on of course). We can do this one of several ways: 1. Take the PR as is(use strings and calculate at runtime) 2. Create a constexpr function that we control to calculate the filename at compile time as either an offset into the filename or a separate const char*. The advantage to this is that it doesn't require any other libraries for pre-C++17 compilers. 3. Use std::string_view(for C++17) or boost::string_view(pre-c++17). The following would work for this solution: std::string_view str{"/foo/bar/what.cpp"}; const int location = str.find_last_of( '/' ) + 1; printf( "fullPath: %s\n", str.data() ); printf( "fileName: %s\n", &str[location] ); Does anybody have a preference or a better way to do it? I'm inclined to go with (3), since that does provide a good fallback for compilers that don't support C++17, and only requires boost for older compilers. -Robert Middleton