001/** 002 * Logback: the reliable, generic, fast and flexible logging framework. 003 * Copyright (C) 1999-2015, QOS.ch. All rights reserved. 004 * 005 * This program and the accompanying materials are dual-licensed under 006 * either the terms of the Eclipse Public License v1.0 as published by 007 * the Eclipse Foundation 008 * 009 * or (per the licensee's choosing) 010 * 011 * under the terms of the GNU Lesser General Public License version 2.1 012 * as published by the Free Software Foundation. 013 */ 014package ch.qos.logback.core; 015 016import java.io.File; 017import java.nio.charset.Charset; 018import java.nio.charset.StandardCharsets; 019 020public class CoreConstants { 021 022 final public static String DISABLE_SERVLET_CONTAINER_INITIALIZER_KEY = "logbackDisableServletContainerInitializer"; 023 final public static String STATUS_LISTENER_CLASS_KEY = "logback.statusListenerClass"; 024 final public static String SYSOUT = "SYSOUT"; 025 026 final public static String STDOUT = "STDOUT"; 027 028 /** 029 * Number of idle threads to retain in a context's executor service. 030 */ 031 public static final int CORE_POOL_SIZE = 4; 032 033 // In Java 21 and later the actual threads are assumed to be virtual 034 public static final int SCHEDULED_EXECUTOR_POOL_SIZE = 4; 035 036 /** 037 * Maximum number of threads to allow in a context's executor service. 038 * @deprecated no longer used 039 * 040 */ 041 public static final int MAX_POOL_SIZE = 32; 042 043 // Note that the line.separator property can be looked up even by 044 // applets. 045 public static final String LINE_SEPARATOR = System.getProperty("line.separator"); 046 public static final int LINE_SEPARATOR_LEN = LINE_SEPARATOR.length(); 047 048 public static final String CODES_URL = "https://logback.qos.ch/codes.html"; 049 public static final String MANUAL_URL_PREFIX = "https://logback.qos.ch/manual/"; 050 public static final String MORE_INFO_PREFIX = "For more information, please visit "; 051 052 /** 053 * The default context name. 054 */ 055 public static final String DEFAULT_CONTEXT_NAME = "default"; 056 057 /** 058 * Customized pattern conversion rules are stored under this key in the 059 * {@link Context} object store. 060 * 061 * @since 1.5.14 062 */ 063 public static final String PATTERN_RULE_REGISTRY_FOR_SUPPLIERS = "PATTERN_RULE_REGISTRY_FOR_SUPPLIERS"; 064 065 /** 066 * Customized pattern conversion rules are stored under this key in the 067 * {@link Context} object store. 068 */ 069 public static final String PATTERN_RULE_REGISTRY = "PATTERN_RULE_REGISTRY"; 070 071 072 073 public static final String ISO8601_STR = "ISO8601"; 074 public static final String ISO8601_PATTERN = "yyyy-MM-dd HH:mm:ss,SSS"; 075 076 /** 077 * Keyword for setting a strict ISO8601 pattern which includes 'T' between the date and the time 078 * 079 * @since 1.5.7 080 */ 081 public static final String STRICT_STR = "STRICT"; 082 /** 083 * Strict ISO8601 pattern which includes 'T' between the date and the time 084 * @since 15.7 085 */ 086 public static final String STRICT_ISO8601_PATTERN = "yyyy-MM-dd'T'HH:mm:ss,SSS"; 087 088 089 public static final String FILE_TIMESTAMP_PATTERN = "yyyy-MM-dd'T'HHmm"; 090 public static final String DAILY_DATE_PATTERN = "yyyy-MM-dd"; 091 092 /** 093 * Time format used in Common Log Format 094 */ 095 public static final String CLF_DATE_PATTERN = "dd/MMM/yyyy:HH:mm:ss Z"; 096 097 /** 098 * The key used in locating the evaluator map in context's object map. 099 */ 100 public static final String EVALUATOR_MAP = "EVALUATOR_MAP"; 101 102 /** 103 * Key used to locate a map Files used by FileAppender instances in context's 104 * object map. 105 * 106 * Said map consists of entries of the type (appender name, File option) 107 */ 108 public static final String FA_FILENAME_COLLISION_MAP = "FA_FILENAMES_MAP"; 109 110 /** 111 * Key used to locate a collision map for RollingFileAppender instances in 112 * context's object map. 113 * 114 * The collision map consists of entities of the type (appender name, 115 * FileNamePattern option) 116 */ 117 public static final String RFA_FILENAME_PATTERN_COLLISION_MAP = "RFA_FILENAME_PATTERN_COLLISION_MAP"; 118 119 /** 120 * By convention, we assume that the static method named "valueOf" taking a 121 * string argument can restore a given object from its string representation. 122 */ 123 public static final String VALUE_OF = "valueOf"; 124 125 /** 126 * An empty string. 127 */ 128 public static final String EMPTY_STRING = ""; 129 130 /** 131 * String value returned in case data is not available. 132 * 133 * For example, when caller information is not available this constant is used for file name, 134 * method name, etc. 135 */ 136 public static final String NA = "?"; 137 138 /** 139 * An empty string array. 140 */ 141 public static final String[] EMPTY_STRING_ARRAY = new String[] {}; 142 143 public static final Charset UTF_8_CHARSET = StandardCharsets.UTF_8; 144 145 /** 146 * An empty Class array. 147 */ 148 public static final Class<?>[] EMPTY_CLASS_ARRAY = new Class[] {}; 149 150 151 public static final File[] EMPTY_FILE_ARRAY = new File[0]; 152 153 public static final String CAUSED_BY = "Caused by: "; 154 public static final String SUPPRESSED = "Suppressed: "; 155 public static final String WRAPPED_BY = "Wrapped by: "; 156 157 public static final char PERCENT_CHAR = '%'; 158 public static final char LEFT_PARENTHESIS_CHAR = '('; 159 public static final char RIGHT_PARENTHESIS_CHAR = ')'; 160 161 public static final char ESCAPE_CHAR = '\\'; 162 public static final char CURLY_LEFT = '{'; 163 public static final char CURLY_RIGHT = '}'; 164 public static final char COMMA_CHAR = ','; 165 public static final char DOUBLE_QUOTE_CHAR = '"'; 166 public static final char SINGLE_QUOTE_CHAR = '\''; 167 public static final char COLON_CHAR = ':'; 168 public static final char DASH_CHAR = '-'; 169 public static final char EQUALS_CHAR = '='; 170 171 public static final String DEFAULT_VALUE_SEPARATOR = ":-"; 172 173 public static final String NULL_STR = "null"; 174 /** 175 * Number of rows before in an HTML table before, we close the table and create 176 * a new one 177 */ 178 public static final int TABLE_ROW_LIMIT = 10000; 179 180 // reset the ObjectOutputStream every OOS_RESET_FREQUENCY calls 181 // this avoids serious memory leaks 182 public static final int OOS_RESET_FREQUENCY = 70; 183 184 // See https://jakarta.ee/specifications/platform/8/platform-spec-8.html#a616 185 // there are the java:comp, java:module, java:app, java:global namespaces 186 public static final String JNDI_JAVA_NAMESPACE = "java:"; 187 188 // the max number of times an error should be reported 189 public static final int MAX_ERROR_COUNT = 4; 190 191 public static final char DOT = '.'; 192 public static final char TAB = '\t'; 193 public static final char DOLLAR = '$'; 194 195 public static final String SEE_FNP_NOT_SET = "See also " + CODES_URL + "#tbr_fnp_not_set"; 196 public static final String SEE_MISSING_INTEGER_TOKEN = "See also " + CODES_URL + "#sat_missing_integer_token"; 197 198 public static final String CONFIGURATION_WATCH_LIST = "CONFIGURATION_WATCH_LIST"; 199 public static final String CONFIGURATION_WATCH_LIST_RESET_X = "CONFIGURATION_WATCH_LIST_RESET"; 200 201 public static final String SAFE_JORAN_CONFIGURATION = "SAFE_JORAN_CONFIGURATION"; 202 public static final String XML_PARSING = "XML_PARSING"; 203 204 // Context Object name for the shutdown hook 205 public static final String SHUTDOWN_HOOK_THREAD = "SHUTDOWN_HOOK"; 206 207 /** 208 * The key under which the local host name is registered in the logger context. 209 */ 210 public static final String HOSTNAME_KEY = "HOSTNAME"; 211 212 public static final String UNKNOWN_LOCALHOST = "UNKNOWN_LOCALHOST"; 213 214 /** 215 * The key under which the current context name is registered in the logger 216 * context. 217 */ 218 public static final String CONTEXT_NAME_KEY = "CONTEXT_NAME"; 219 220 public static final int BYTES_PER_INT = 4; 221 public static final long MILLIS_IN_ONE_SECOND = 1000; 222 public static final long MILLIS_IN_ONE_MINUTE = MILLIS_IN_ONE_SECOND * 60; 223 public static final long MILLIS_IN_ONE_HOUR = MILLIS_IN_ONE_MINUTE * 60; 224 public static final long MILLIS_IN_ONE_DAY = MILLIS_IN_ONE_HOUR * 24; 225 public static final long MILLIS_IN_ONE_WEEK = MILLIS_IN_ONE_DAY * 7; 226 227 /** 228 * The number of seconds to wait for compression jobs to finish. 229 */ 230 public static final int SECONDS_TO_WAIT_FOR_COMPRESSION_JOBS = 30; 231 232 public static final String CONTEXT_SCOPE_VALUE = "context"; 233 234 public static final String RESET_MSG_PREFIX = "Will reset and reconfigure context "; 235 236 public static final String JNDI_COMP_PREFIX = "java:comp/env"; 237 238 public static final String UNDEFINED_PROPERTY_SUFFIX = "_IS_UNDEFINED"; 239 240 public static final String LEFT_ACCOLADE = new String(new char[] { CURLY_LEFT }); 241 public static final String RIGHT_ACCOLADE = new String(new char[] { CURLY_RIGHT }); 242 public static final long UNBOUNDED_TOTAL_SIZE_CAP = 0; 243 244 /** 245 * If Rolling 246 */ 247 public static final int UNBOUNDED_HISTORY = 0; 248 249 /** 250 * Replaced by {@link CoreConstants#UNBOUNDED_HISTORY} with the same identical value. 251 252 * @deprecated 253 * @see #UNBOUNDED_HISTORY 254 */ 255 public static final int UNBOUND_HISTORY = UNBOUNDED_HISTORY; 256 257 //public static final String RECONFIGURE_ON_CHANGE_TASK = "RECONFIGURE_ON_CHANGE_TASK"; 258 public static final String SIZE_AND_TIME_BASED_FNATP_IS_DEPRECATED = "Direct use of either SizeAndTimeBasedFNATP or SizeAndTimeBasedFileNamingAndTriggeringPolicy "; 259 public static final String SIZE_AND_TIME_BASED_FNATP_IS_DEPRECATED_BIS = "is deprecated. Please use SizeAndTimeBasedRollingPolicy instead."; 260 261 public static final char JSON_LINE_SEPARATOR = '\n'; 262 final public static String MODEL_CONFIG_FILE_EXTENSION = ".scmo"; 263 /** 264 * since 1.5.8 265 */ 266 final public static String PROPERTIES_FILE_EXTENSION = ".properties"; 267 public static final String LOGBACK_CORE_VERSION_MESSAGE = "This is logback-core version "; 268}