1package org.robolectric.util;
2
3/**
4 * Logger for Robolectric. For now, it simply prints messages to stdout.
5 *
6 * Logging can be enabled by setting the property: {@code robolectric.logging.enabled = true}.
7 */
8public class Logger {
9  private static final String LOGGING_ENABLED = "robolectric.logging.enabled";
10
11  public static void strict(String message, Throwable e) {
12    if (loggingEnabled()) {
13      System.out.print("WARNING: ");
14      System.out.println(message);
15      e.printStackTrace();
16    }
17  }
18
19  public static void strict(String message, Object... args) {
20    if (loggingEnabled()) {
21      System.out.print("WARNING: ");
22      System.out.println(String.format(message, args));
23    }
24  }
25
26  /**
27   * Log an info message.
28   *
29   * @param message Message text.
30   * @param args    Message arguments.
31   */
32  public static void info(String message, Object... args) {
33    if (loggingEnabled()) {
34      System.out.print("INFO: ");
35      System.out.println(String.format(message, args));
36    }
37  }
38
39  /**
40   * Log a warning message.
41   *
42   * @param message Message text.
43   * @param args    Message arguments.
44   */
45  public static void warn(String message, Object... args) {
46    if (loggingEnabled()) {
47      System.out.print("WARN: ");
48      System.out.println(String.format(message, args));
49    }
50  }
51
52  /**
53   * Log an error message.
54   *
55   * @param message Message text.
56   * @param e       The exception.
57   */
58  public static void error(String message, Throwable e) {
59    System.err.print("ERROR: ");
60    System.err.println(message);
61    e.printStackTrace();
62  }
63
64  /**
65   * Log an error message.
66   *
67   * @param message Message text.
68   * @param args    Message arguments.
69   */
70  public static void error(String message, Object... args) {
71    System.err.print("ERROR: ");
72    System.err.println(String.format(message, args));
73  }
74
75  /**
76   * Log a debug message.
77   *
78   * @param message Message text.
79   * @param args    Message arguments.
80   */
81  public static void debug(String message, Object... args) {
82    if (loggingEnabled()) {
83      System.out.print("DEBUG: ");
84      System.out.println(String.format(message, args));
85    }
86  }
87
88  public static boolean loggingEnabled() {
89    return Boolean.getBoolean(LOGGING_ENABLED);
90  }
91}
92