992 } |
992 } |
993 ShouldNotReachHere(); |
993 ShouldNotReachHere(); |
994 return NULL; |
994 return NULL; |
995 } |
995 } |
996 |
996 |
997 AliasedLoggingFlag Arguments::catch_logging_aliases(const char* name){ |
997 void log_deprecated_flag(const char* name, bool on, AliasedLoggingFlag alf) { |
|
998 LogTagType tagSet[] = {alf.tag0, alf.tag1, alf.tag2, alf.tag3, alf.tag4, alf.tag5}; |
|
999 // Set tagset string buffer at max size of 256, large enough for any alias tagset |
|
1000 const int max_tagset_size = 256; |
|
1001 int max_tagset_len = max_tagset_size - 1; |
|
1002 char tagset_buffer[max_tagset_size]; |
|
1003 tagset_buffer[0] = '\0'; |
|
1004 |
|
1005 // Write tag-set for aliased logging option, in string list form |
|
1006 int max_tags = sizeof(tagSet)/sizeof(tagSet[0]); |
|
1007 for (int i = 0; i < max_tags && tagSet[i] != LogTag::__NO_TAG; i++) { |
|
1008 if (i > 0) { |
|
1009 strncat(tagset_buffer, ",", max_tagset_len - strlen(tagset_buffer)); |
|
1010 } |
|
1011 strncat(tagset_buffer, LogTag::name(tagSet[i]), max_tagset_len - strlen(tagset_buffer)); |
|
1012 } |
|
1013 |
|
1014 log_warning(arguments)("-XX:%s%s is deprecated. Will use -Xlog:%s=%s instead.", |
|
1015 (on) ? "+" : "-", |
|
1016 name, |
|
1017 tagset_buffer, |
|
1018 (on) ? LogLevel::name(alf.level) : "off"); |
|
1019 } |
|
1020 |
|
1021 AliasedLoggingFlag Arguments::catch_logging_aliases(const char* name, bool on){ |
998 for (size_t i = 0; aliased_logging_flags[i].alias_name != NULL; i++) { |
1022 for (size_t i = 0; aliased_logging_flags[i].alias_name != NULL; i++) { |
999 const AliasedLoggingFlag& alf = aliased_logging_flags[i]; |
1023 const AliasedLoggingFlag& alf = aliased_logging_flags[i]; |
1000 if (strcmp(alf.alias_name, name) == 0) { |
1024 if (strcmp(alf.alias_name, name) == 0) { |
|
1025 log_deprecated_flag(name, on, alf); |
1001 return alf; |
1026 return alf; |
1002 } |
1027 } |
1003 } |
1028 } |
1004 AliasedLoggingFlag a = {NULL, LogLevel::Off, false, LOG_TAGS(_NO_TAG)}; |
1029 AliasedLoggingFlag a = {NULL, LogLevel::Off, false, LOG_TAGS(_NO_TAG)}; |
1005 return a; |
1030 return a; |
1014 char dummy; |
1039 char dummy; |
1015 const char* real_name; |
1040 const char* real_name; |
1016 bool warn_if_deprecated = true; |
1041 bool warn_if_deprecated = true; |
1017 |
1042 |
1018 if (sscanf(arg, "-%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) { |
1043 if (sscanf(arg, "-%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) { |
1019 AliasedLoggingFlag alf = catch_logging_aliases(name); |
1044 AliasedLoggingFlag alf = catch_logging_aliases(name, false); |
1020 if (alf.alias_name != NULL){ |
1045 if (alf.alias_name != NULL){ |
1021 LogConfiguration::configure_stdout(LogLevel::Off, alf.exactMatch, alf.tag0, alf.tag1, alf.tag2, alf.tag3, alf.tag4, alf.tag5); |
1046 LogConfiguration::configure_stdout(LogLevel::Off, alf.exactMatch, alf.tag0, alf.tag1, alf.tag2, alf.tag3, alf.tag4, alf.tag5); |
1022 return true; |
1047 return true; |
1023 } |
1048 } |
1024 real_name = handle_aliases_and_deprecation(name, warn_if_deprecated); |
1049 real_name = handle_aliases_and_deprecation(name, warn_if_deprecated); |
1026 return false; |
1051 return false; |
1027 } |
1052 } |
1028 return set_bool_flag(real_name, false, origin); |
1053 return set_bool_flag(real_name, false, origin); |
1029 } |
1054 } |
1030 if (sscanf(arg, "+%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) { |
1055 if (sscanf(arg, "+%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) { |
1031 AliasedLoggingFlag alf = catch_logging_aliases(name); |
1056 AliasedLoggingFlag alf = catch_logging_aliases(name, true); |
1032 if (alf.alias_name != NULL){ |
1057 if (alf.alias_name != NULL){ |
1033 LogConfiguration::configure_stdout(alf.level, alf.exactMatch, alf.tag0, alf.tag1, alf.tag2, alf.tag3, alf.tag4, alf.tag5); |
1058 LogConfiguration::configure_stdout(alf.level, alf.exactMatch, alf.tag0, alf.tag1, alf.tag2, alf.tag3, alf.tag4, alf.tag5); |
1034 return true; |
1059 return true; |
1035 } |
1060 } |
1036 real_name = handle_aliases_and_deprecation(name, warn_if_deprecated); |
1061 real_name = handle_aliases_and_deprecation(name, warn_if_deprecated); |