class App {

  /**
   * The entry point of the application.
   *
   * @param args Command line arguments.
   * @throws InterruptedException If any thread has interrupted the current thread.
   */
  public static void main(String[] args) throws InterruptedException {<FILL_FUNCTION_BODY>}
}

    final CentralLogStore centralLogStore = new CentralLogStore();
    final LogAggregator aggregator = new LogAggregator(centralLogStore, LogLevel.INFO);

    final LogProducer serviceA = new LogProducer("ServiceA", aggregator);
    final LogProducer serviceB = new LogProducer("ServiceB", aggregator);

    serviceA.generateLog(LogLevel.INFO, "This is an INFO log from ServiceA");
    serviceB.generateLog(LogLevel.ERROR, "This is an ERROR log from ServiceB");
    serviceA.generateLog(LogLevel.DEBUG, "This is a DEBUG log from ServiceA");

    aggregator.stop();
    centralLogStore.displayLogs();
  
<no_super_class>