org.sonar.api.utils.log.Logger类的使用及代码示例

x33g5p2x  于2022-01-23 转载在 其他  
字(10.3k)|赞(0)|评价(0)|浏览(154)

本文整理了Java中org.sonar.api.utils.log.Logger类的一些代码示例,展示了Logger类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Logger类的具体详情如下:
包路径:org.sonar.api.utils.log.Logger
类名称:Logger

Logger介绍

[英]SonarQube plugins are not coupled with external logging libraries like SLF4J or Logback.

Example:

public class MyClass { 
private static final Logger LOGGER = Loggers.get("logger_name"); 
public void doSomething() { 
LOGGER.info("something valuable for production environment"); 
LOGGER.warn("message with arguments {} and {}", "foo", 42); 
} 
}

Message arguments are defined with {}, but not with java.util.Formatter syntax.

INFO, WARN and ERROR levels are always enabled. They can't be disabled by users. DEBUG and TRACE levels are enabled on demand with the property sonar.log.level.

See org.sonar.api.utils.log.LogTester for testing facilities.
[中]SonarQube插件不与SLF4J或Logback等外部日志库耦合。
例子:

public class MyClass { 
private static final Logger LOGGER = Loggers.get("logger_name"); 
public void doSomething() { 
LOGGER.info("something valuable for production environment"); 
LOGGER.warn("message with arguments {} and {}", "foo", 42); 
} 
}

消息参数是用{}定义的,但不是用java定义的。util。格式化程序语法。
信息、警告和错误级别始终处于启用状态。用户不能禁用它们。调试和跟踪级别是按需使用属性sonar.log.level启用的。
见组织。声纳。应用程序编程接口。乌提尔斯。日志用于测试设施的LogTester。

代码示例

代码示例来源:origin: SonarSource/sonarqube

private static void log(String title, PathPattern[] patterns, String indent) {
 if (patterns.length > 0) {
  LOG.info("{}{} {}", indent, title, Arrays.stream(patterns).map(PathPattern::toString).collect(Collectors.joining(", ")));
 }
}

代码示例来源:origin: SonarSource/sonarqube

private void logError(String msg, @Nullable Object[] args) {
 if (args == null) {
  logger.error(msg);
 } else {
  logger.error(msg, args);
 }
}

代码示例来源:origin: SonarSource/sonarqube

private void logWarn(String msg, @Nullable Object[] args) {
 if (args == null) {
  logger.warn(msg);
 } else {
  logger.warn(msg, args);
 }
}

代码示例来源:origin: SonarSource/sonarqube

private static boolean shouldLog(Logger logger, LoggerLevel level) {
 if (level == LoggerLevel.TRACE && !logger.isTraceEnabled()) {
  return false;
 }
 return level != LoggerLevel.DEBUG || logger.isDebugEnabled();
}

代码示例来源:origin: SonarSource/sonarqube

/**
 * Logs a DEBUG message which is only to be constructed if the logging level
 * is such that the message will actually be logged.
 * <p>
 * DEBUG messages must
 * be valuable for diagnosing production problems. They must not be used for development debugging.
 * @param msgSupplier A function, which when called, produces the desired log message
 * @since 6.3
 */
default void debug(Supplier<String> msgSupplier) {
 if (isDebugEnabled()) {
  debug(msgSupplier.get());
 }
}

代码示例来源:origin: SonarSource/sonarqube

private static void logPostJobs(Collection<PostJobWrapper> postJobs) {
  if (LOG.isDebugEnabled()) {
   LOG.debug(() -> "Post-jobs : " + postJobs.stream().map(Object::toString).collect(Collectors.joining(" -> ")));
  }
 }
}

代码示例来源:origin: SonarSource/sonarqube

private void removeGroups(DbSession dbSession, UserDto userDto, Collection<String> groupsToRemove, Map<String, GroupDto> groupsByName) {
 Optional<GroupDto> defaultGroup = getDefaultGroup(dbSession);
 groupsToRemove.stream().map(groupsByName::get)
  .filter(Objects::nonNull)
  // user should be member of default group only when organizations are disabled, as the IdentityProvider API doesn't handle yet
  // organizations
  .filter(group -> !defaultGroup.isPresent() || !group.getId().equals(defaultGroup.get().getId()))
  .forEach(groupDto -> {
   LOGGER.debug("Removing group '{}' from user '{}'", groupDto.getName(), userDto.getLogin());
   dbClient.userGroupDao().delete(dbSession, groupDto.getId(), userDto.getId());
  });
}

代码示例来源:origin: SonarSource/sonarqube

private Optional<Period> resolveVersion(DbSession dbSession, List<EventDto> versions, String propertyValue) {
 LOG.debug("Resolving new code period by version: {}", propertyValue);
 Optional<EventDto> version = versions.stream().filter(t -> propertyValue.equals(t.getName())).findFirst();
 checkPeriodProperty(version.isPresent(), propertyValue,
  "version is none of the existing ones: %s", supplierToString(() -> toVersions(versions)));
 return newPeriod(dbSession, LEAK_PERIOD_MODE_VERSION, version.get());
}

代码示例来源:origin: SonarSource/sonarqube

private void printSensors(Collection<ModuleSensorWrapper> moduleSensors, Collection<ModuleSensorWrapper> globalSensors) {
 String sensors = Stream
  .concat(moduleSensors.stream(), globalSensors.stream())
  .map(Object::toString)
  .collect(Collectors.joining(" -> "));
 LOG.debug("Sensors : {}", sensors);
}

代码示例来源:origin: SonarSource/sonarqube

private void addGroups(DbSession dbSession, UserDto userDto, Collection<String> groupsToAdd, Map<String, GroupDto> groupsByName) {
 groupsToAdd.stream().map(groupsByName::get).filter(Objects::nonNull).forEach(
  groupDto -> {
   LOGGER.debug("Adding group '{}' to user '{}'", groupDto.getName(), userDto.getLogin());
   dbClient.userGroupDao().insert(dbSession, new UserGroupDto().setGroupId(groupDto.getId()).setUserId(userDto.getId()));
  });
}

代码示例来源:origin: SonarSource/sonarqube

public void execute() {
 List<ProjectSensorWrapper> sensors = selector.selectSensors();
 LOG.debug("Sensors : {}", sensors.stream()
  .map(Object::toString)
  .collect(Collectors.joining(" -> ")));
 for (ProjectSensorWrapper sensor : sensors) {
  String sensorName = getSensorName(sensor);
  profiler.startInfo("Sensor " + sensorName);
  sensor.analyse();
  profiler.stopInfo();
 }
}

代码示例来源:origin: SonarSource/sonarqube

@Override
 public void execute(Context context) throws SQLException {
  List<String> tables = asList("measure_filters", "measure_filter_favourites");
  Loggers.get(getClass()).info("Removing tables {}", tables);
  context.execute(tables
   .stream()
   .flatMap(table -> new DropTableBuilder(getDialect(), table).build().stream())
   .collect(toList()));
 }
}

代码示例来源:origin: SonarSource/sonarqube

private static void log(WebhookDelivery delivery) {
 Optional<String> error = delivery.getErrorMessage();
 if (error.isPresent()) {
  LOGGER.debug("Failed to send webhook '{}' | url={} | message={}",
   delivery.getWebhook().getName(), delivery.getWebhook().getUrl(), error.get());
 } else {
  LOGGER.debug("Sent webhook '{}' | url={} | time={}ms | status={}",
   delivery.getWebhook().getName(), delivery.getWebhook().getUrl(), delivery.getDurationInMs().orElse(-1), delivery.getHttpStatus().orElse(-1));
 }
}

代码示例来源:origin: SonarSource/sonarqube

@Override
public void execute(SensorContext context) {
 Set<String> reportPaths = loadReportPaths();
 for (String reportPath : reportPaths) {
  File reportFile = context.fileSystem().resolvePath(reportPath);
  LOG.info("Parsing {}", reportFile);
  GenericCoverageReportParser parser = new GenericCoverageReportParser();
  parser.parse(reportFile, context);
  LOG.info("Imported coverage data for {} files", parser.numberOfMatchedFiles());
  int numberOfUnknownFiles = parser.numberOfUnknownFiles();
  if (numberOfUnknownFiles > 0) {
   LOG.info("Coverage data ignored for " + numberOfUnknownFiles + " unknown files, including:\n" + parser.firstUnknownFiles().stream().collect(Collectors.joining("\n")));
  }
 }
}

代码示例来源:origin: SonarSource/sonarqube

private void insertPermissionForAdministrators(DbSession dbSession, PermissionTemplateDto template) {
 Optional<GroupDto> admins = dbClient.groupDao().selectByName(dbSession, template.getOrganizationUuid(), DefaultGroups.ADMINISTRATORS);
 if (admins.isPresent()) {
  insertGroupPermission(dbSession, template, UserRole.ADMIN, admins.get());
  insertGroupPermission(dbSession, template, UserRole.ISSUE_ADMIN, admins.get());
  insertGroupPermission(dbSession, template, UserRole.SECURITYHOTSPOT_ADMIN, admins.get());
  insertGroupPermission(dbSession, template, OrganizationPermission.APPLICATION_CREATOR.getKey(), admins.get());
  insertGroupPermission(dbSession, template, OrganizationPermission.PORTFOLIO_CREATOR.getKey(), admins.get());
 } else {
  LOG.error("Cannot setup default permission for group: " + DefaultGroups.ADMINISTRATORS);
 }
}

代码示例来源:origin: SonarSource/sonarqube

private Optional<FileBlocks> toFileBlocks(String componentKey, Collection<Block> fileBlocks) {
 DefaultInputFile component = (DefaultInputFile) componentStore.getByKey(componentKey);
 if (component == null) {
  LOG.error("Resource not found in component store: {}. Skipping CPD computation for it", componentKey);
  return Optional.empty();
 }
 return Optional.of(new FileBlocks(component, fileBlocks));
}

代码示例来源:origin: SonarSource/sonarqube

private static void startLevel4(ComponentContainer level4) {
 level4.getComponentByType(CECoreExtensionsInstaller.class)
  .install(level4, hasPlatformLevel4OrNone(), noAdditionalSideFilter());
 level4.getComponentByType(ServerExtensionInstaller.class)
  .installExtensions(level4);
 level4.startComponents();
 PlatformEditionProvider editionProvider = level4.getComponentByType(PlatformEditionProvider.class);
 Loggers.get(ComputeEngineContainerImpl.class)
  .info("Running {} edition", editionProvider.get().map(EditionProvider.Edition::getLabel).orElse(""));
}

代码示例来源:origin: SonarSource/sonarqube

private void logProfiling(long start, Configuration config) {
  if (config.getBoolean(CoreProperties.PROFILING_LOG_PROPERTY).orElse(false)) {
   long duration = System.currentTimeMillis() - start;
   LOG.info("\n -------- Profiling for purge: " + TimeUtils.formatDuration(duration) + " --------\n");
   profiler.dump(duration, LOG);
   LOG.info("\n -------- End of profiling for purge --------\n");
  }
 }
}

代码示例来源:origin: SonarSource/sonarqube

private Optional<Period> resolveByDate(DbSession dbSession, String projectUuid, Instant date, String propertyValue) {
 Instant now = Instant.ofEpochMilli(system2.now());
 checkPeriodProperty(date.compareTo(now) <= 0, propertyValue,
  "date is in the future (now: '%s')", supplierToString(() -> logDate(now)));
 LOG.debug("Resolving new code period by date: {}", supplierToString(() -> logDate(date)));
 Optional<Period> period = findFirstSnapshot(dbSession, createCommonQuery(projectUuid).setCreatedAfter(date.toEpochMilli()).setSort(BY_DATE, ASC))
  .map(dto -> newPeriod(LEAK_PERIOD_MODE_DATE, DateUtils.formatDate(date), dto));
 checkPeriodProperty(period.isPresent(), propertyValue, "No analysis found created after date '%s'", supplierToString(() -> logDate(date)));
 return period;
}

代码示例来源:origin: SonarSource/sonarqube

public GlobalServerSettings provide(SettingsLoader loader) {
  if (singleton == null) {
   Map<String, String> serverSideSettings = loader.loadGlobalSettings();
   singleton = new GlobalServerSettings(serverSideSettings);
   Optional.ofNullable(serverSideSettings.get(CoreProperties.SERVER_ID)).ifPresent(v -> LOG.info("Server id: {}", v));
  }
  return singleton;
 }
}

相关文章