1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41

base / android / proguard / remove_logging.flags [blame]

# Copyright 2022 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Remove Log.d(), Log.v(), and corresponding isLoggable() calls.
# Log.DEBUG = 3, Log.VERBOSE = 2.
# https://stackoverflow.com/questions/73876633/what-does-the-r8-maximumremovedandroidloglevel-option
-maximumremovedandroidloglevel 3

# Makes try-with-resources less inefficient. Saved 3.8kb when added.
-assumenosideeffects class java.lang.Throwable {
  void addSuppressed(...);
}

# Remove all logging calls via JDK Loggers. They are generally from
# unused parts of third-party libraries.
-assumenosideeffects class java.util.logging.Logger {
    void finest(...);
    void finer(...);
    void fine(...);
    void info(...);
    void warning(...);
    void severe(...);
    void throwing(...);
    void log(...);
    void logp(...);
    static java.util.logging.Logger getLogger(...) return _NONNULL_;
    boolean isLoggable(...) return false;
}

# Remove accesses to Level.<thing> that go unused.
-assumenosideeffects class java.util.logging.Level {
  <fields>;
  # Flogger uses Level objects, so do not set a return value for intValue().
  int intValue();
}

# Remove fields of type Logger.
-assumenosideeffects class * {
  java.util.logging.Logger * return _NONNULL_;
}