Github user yaojiefeng commented on a diff in the pull request:

    https://github.com/apache/twill/pull/14#discussion_r87253067
  
    --- Diff: twill-api/src/main/java/org/apache/twill/api/TwillController.java 
---
    @@ -89,4 +90,59 @@
        * @return A {@link Future} that will be completed when the restart 
operation has been done.
        */
       Future<String> restartInstances(String runnable, int instanceId, int... 
moreInstanceIds);
    +
    +  /**
    +   * Set the root log level for Twill applications in all containers.
    +   *
    +   * @param logLevel The log level for the root logger to change.
    +   * @return A {@link Future} that will be completed when the set log 
level operation has been done. It will carry
    +   *         the log level as a result.
    +   */
    +  Future<LogEntry.Level> setRootLogLevel(LogEntry.Level logLevel);
    +
    +  /**
    +   * Set the root log level for a particular runnable.
    +   *
    +   * @param runnableName The name of the runnable to set the log level.
    +   * @param logLevel The log level for the root logger to change.
    +   * @return A {@link Future} that will be completed when the set log 
level operation has been done. It will carry
    +   *         the log level as a result.
    +   */
    +  Future<LogEntry.Level> setRootLogLevel(String runnableName, 
LogEntry.Level logLevel);
    +
    +  /**
    +   * Set the log levels for requested logger names for Twill applications 
running in a container.
    +   *
    +   * @param logLevels The {@link Map} contains the requested logger names 
and log levels that need to be set.
    +   * @return A {@link Future} that will be completed when the set log 
level operation has been done. It will carry the
    +   *         {@link Map} of log levels as the result.
    +   */
    +  Future<Map<String, LogEntry.Level>> setLogLevels(Map<String, 
LogEntry.Level> logLevels);
    +
    +  /**
    +   * Set the log levels for requested logger names for a {@link 
TwillRunnable}.
    +   *
    +   * @param runnableName The name of the runnable to set the log level.
    +   * @param logLevelsForRunnable The {@link Map} contains the requested 
logger name and log level that
    +   *                             need to be changed.
    +   * @return A {@link Future} that will be completed when the set log 
level operation has been done. It will carry the
    +   *         {@link Map} of log levels as the result.
    +   */
    +  Future<Map<String, LogEntry.Level>> setLogLevels(String runnableName,
    +                                                   Map<String, 
LogEntry.Level> logLevelsForRunnable);
    +
    +  /**
    +   * Reset the log levels of all runnables to the default log level, 
{@code LogEntry.Level.INFO}.
    +   *
    +   * @return A {@link Future} that will be completed when the set log 
level operation has been done.
    +   */
    +  Future<String> resetLogLevelsToDefault();
    +
    +  /**
    +   * Reset the log levels of the given runnable to the default log level, 
{@code LogEntry.Level.INFO}.
    +   *
    +   * @return A {@link Future} that will be completed when the set log 
level operation has been done. It will carry the
    +   *         runnable name as the result.
    +   */
    +  Future<String> resetRunnableLogLevelsToDefault(String runnableName);
    --- End diff --
    
    `resetLogLevels` will reset all log levels passed in runtime except the 
root to null. If user want to reset log level for a particular logger, he can 
use `setLogLevels(ImmutableMap.of(someloggerName, null))` to set the log level 
since null is actually a valid log level for log back


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to