1 /*
2 * Copyright (c) 2012-2024, jcabi.com
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met: 1) Redistributions of source code must retain the above
8 * copyright notice, this list of conditions and the following
9 * disclaimer. 2) Redistributions in binary form must reproduce the above
10 * copyright notice, this list of conditions and the following
11 * disclaimer in the documentation and/or other materials provided
12 * with the distribution. 3) Neither the name of the jcabi.com nor
13 * the names of its contributors may be used to endorse or promote
14 * products derived from this software without specific prior written
15 * permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
19 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
21 * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
22 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
26 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
28 * OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30 package com.jcabi.aspects.aj;
31
32 import com.jcabi.aspects.Loggable;
33 import com.jcabi.log.Logger;
34
35 /**
36 * Helper methods for logging.
37 *
38 * @since 0.17
39 */
40 @SuppressWarnings("PMD.ProhibitPublicStaticMethods")
41 final class LogHelper {
42
43 /**
44 * Helper constructor.
45 */
46 private LogHelper() {
47 // do nothing
48 }
49
50 /**
51 * Log one line.
52 * @param level Level of logging
53 * @param log Destination log
54 * @param message Message to log
55 * @param params Message parameters
56 * @checkstyle ParameterNumberCheck (3 lines)
57 */
58 public static void log(final int level, final Object log,
59 final String message, final Object... params) {
60 if (level == Loggable.TRACE) {
61 Logger.trace(log, message, params);
62 } else if (level == Loggable.DEBUG) {
63 Logger.debug(log, message, params);
64 } else if (level == Loggable.INFO) {
65 Logger.info(log, message, params);
66 } else if (level == Loggable.WARN) {
67 Logger.warn(log, message, params);
68 } else if (level == Loggable.ERROR) {
69 Logger.error(log, message, params);
70 }
71 }
72
73 /**
74 * Log level is enabled?
75 *
76 * @param level Level of logging
77 * @param log Destination log
78 * @return TRUE if enabled
79 */
80 public static boolean enabled(final int level, final Object log) {
81 final boolean enabled;
82 if (level == Loggable.TRACE) {
83 enabled = Logger.isTraceEnabled(log);
84 } else if (level == Loggable.DEBUG) {
85 enabled = Logger.isDebugEnabled(log);
86 } else if (level == Loggable.INFO) {
87 enabled = Logger.isInfoEnabled(log);
88 } else if (level == Loggable.WARN) {
89 enabled = Logger.isWarnEnabled(log);
90 } else {
91 enabled = true;
92 }
93 return enabled;
94 }
95 }
96