public void localJobDebugger(int exitVal, String taskId) { StringBuilder sb = new StringBuilder(); sb.append("\n"); sb.append("Task failed!\n"); sb.append("Task ID:\n " + taskId + "\n\n"); sb.append("Logs:\n"); console.printError(sb.toString()); for (Appender appender : ((Logger) LogManager.getRootLogger()).getAppenders().values()) { if (appender instanceof FileAppender) { console.printError(((FileAppender) appender).getFileName()); } else if (appender instanceof RollingFileAppender) { console.printError(((RollingFileAppender) appender).getFileName()); } } }
@Test public void testFileName() { final String name = fileApp.getFileName(); final int year = Calendar.getInstance().get(Calendar.YEAR); assertTrue("Date was not substituted: " + name, name.contains(Integer.toString(year))); } }
/** {@inheritDoc} */ @Nullable @Override public String fileName() { for (Logger log = impl; log != null; log = log.getParent()) { for (Appender a : log.getAppenders().values()) { if (a instanceof FileAppender) return ((FileAppender)a).getFileName(); if (a instanceof RollingFileAppender) return ((RollingFileAppender)a).getFileName(); if (a instanceof RoutingAppender) { try { RoutingAppender routing = (RoutingAppender)a; Field appsFiled = routing.getClass().getDeclaredField("appenders"); appsFiled.setAccessible(true); Map<String, AppenderControl> appenders = (Map<String, AppenderControl>)appsFiled.get(routing); for (AppenderControl control : appenders.values()) { Appender innerApp = control.getAppender(); if (innerApp instanceof FileAppender) return normalize(((FileAppender)innerApp).getFileName()); if (innerApp instanceof RollingFileAppender) return normalize(((RollingFileAppender)innerApp).getFileName()); } } catch (IllegalAccessException | NoSuchFieldException e) { error("Failed to get file name (was the implementation of log4j2 changed?).", e); } } } } return null; }
/** * Get path of the log file for user to see on the WebUI. */ public static String getLogFilePath() { String logFilePath = null; org.apache.logging.log4j.Logger rootLogger = LogManager.getRootLogger(); if (rootLogger instanceof org.apache.logging.log4j.core.Logger) { org.apache.logging.log4j.core.Logger coreLogger = (org.apache.logging.log4j.core.Logger)rootLogger; for (Appender appender : coreLogger.getAppenders().values()) { if (appender instanceof FileAppender) { logFilePath = ((FileAppender) appender).getFileName(); } else if (appender instanceof RollingFileAppender) { logFilePath = ((RollingFileAppender) appender).getFileName(); } else if (appender instanceof RollingRandomAccessFileAppender) { logFilePath = ((RollingRandomAccessFileAppender) appender).getFileName(); } } } return logFilePath; }
console.printInfo("Execution log at: " + ((FileAppender) appender).getFileName()); } else if (appender instanceof RollingFileAppender) { console.printInfo("Execution log at: " + ((RollingFileAppender) appender).getFileName());
@Test public void testFileName() { final FileAppender fileApp = (FileAppender) context.getRequiredAppender("File"); final String name = fileApp.getFileName(); Assert.assertEquals("target/value0.log", name); }
.getAppenders().values()) { if (appender instanceof FileAppender) { console.printInfo("Execution log at: " + ((FileAppender) appender).getFileName()); } else if (appender instanceof RollingFileAppender) { console.printInfo("Execution log at: " + ((RollingFileAppender) appender).getFileName());
.getAppenders().values()) { if (appender instanceof FileAppender) { console.printInfo("Execution log at: " + ((FileAppender) appender).getFileName()); } else if (appender instanceof RollingFileAppender) { console.printInfo("Execution log at: " + ((RollingFileAppender) appender).getFileName());
import java.io.File; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.core.LoggerContext; import org.apache.logging.log4j.core.appender.FileAppender; import org.apache.logging.log4j.core.config.Configuration; ... LoggerContext ctx = (LoggerContext) LogManager.getContext(false); Configuration config = ctx.getConfiguration(); FileAppender techical = (FileAppender) config.getAppender("Technical"); File dir = new File(techical.getFileName().replaceFirst("[^\\/]+$", ""));
@SuppressWarnings("unchecked") public Log4j2LoggerAdapter() { try { org.apache.logging.log4j.Logger logger = LogManager.getLogger(); if (logger != null) { Map<String, Appender> appenderMap = ((org.apache.logging.log4j.core.Logger) logger).getAppenders(); for (Map.Entry<String, Appender> entry : appenderMap.entrySet()) { if (entry.getValue() instanceof FileAppender) { String filename = ((FileAppender) entry.getValue()).getFileName(); file = new File(filename); break; } } } } catch (Throwable t) { } }
@SuppressWarnings("unchecked") public Log4j2LoggerAdapter() { try { org.apache.logging.log4j.Logger logger = LogManager.getLogger(); if (logger != null) { Map<String, Appender> appenderMap = ((org.apache.logging.log4j.core.Logger) logger).getAppenders(); for (Map.Entry<String, Appender> entry : appenderMap.entrySet()) { if (entry.getValue() instanceof FileAppender) { String filename = ((FileAppender) entry.getValue()).getFileName(); file = new File(filename); break; } } } } catch (Throwable t) { } }
/** * Returns list of files produced by {@link FileAppender}s defined in a given {@link Configuration}. There's no * need for the log4j configuration corresponding to this repository of being active. * * @param configuration the {@link Configuration} to browse looking for {@link FileAppender} * @return {@link FileAppender}s present in configuration * @since 10.3 */ public static List<String> getFileAppendersFileNames(Configuration configuration) { List<String> names = new ArrayList<>(); for (Appender appender : configuration.getAppenders().values()) { if (appender instanceof FileAppender) { names.add(((FileAppender) appender).getFileName()); } else if (appender instanceof RollingFileAppender) { names.add(((RollingFileAppender) appender).getFileName()); } } return names; }
/** {@inheritDoc} */ @Nullable @Override public String fileName() { for (Logger log = impl; log != null; log = log.getParent()) { for (Appender a : log.getAppenders().values()) { if (a instanceof FileAppender) return ((FileAppender)a).getFileName(); if (a instanceof RollingFileAppender) return ((RollingFileAppender)a).getFileName(); if (a instanceof RoutingAppender) { try { RoutingAppender routing = (RoutingAppender)a; Field appsFiled = routing.getClass().getDeclaredField("appenders"); appsFiled.setAccessible(true); Map<String, AppenderControl> appenders = (Map<String, AppenderControl>)appsFiled.get(routing); for (AppenderControl control : appenders.values()) { Appender innerApp = control.getAppender(); if (innerApp instanceof FileAppender) return normalize(((FileAppender)innerApp).getFileName()); if (innerApp instanceof RollingFileAppender) return normalize(((RollingFileAppender)innerApp).getFileName()); } } catch (IllegalAccessException | NoSuchFieldException e) { error("Failed to get file name (was the implementation of log4j2 changed?).", e); } } } } return null; }
protected String logFilename() { if (this.logFilename == null) { org.apache.logging.log4j.Logger logger = LogManager.getLogger(); Map<String, Appender> appenderMap = ((org.apache.logging.log4j.core.Logger) logger).getAppenders(); for (Map.Entry<String,Appender> e : appenderMap.entrySet()) { String filename = null; Appender appender = e.getValue(); if (appender instanceof FileAppender) { filename = ((FileAppender)appender).getFileName(); } else if (appender instanceof RollingFileAppender) { filename = ((RollingFileAppender)appender).getFileName(); } else if (appender instanceof RandomAccessFileAppender) { filename = ((RandomAccessFileAppender)appender).getFileName(); } else if (appender instanceof RollingRandomAccessFileAppender) { filename = ((RollingRandomAccessFileAppender)appender).getFileName(); } if (filename != null) { classLogger.debug("Using \"{}\" as the file for the server log.", filename); this.logFilename = filename; return this.logFilename; } } // no file appender found, use default DICOMLOG.log classLogger.debug("No file appender found, using \"DICOMLOG.log\" as the default logger"); this.logFilename = Platform.homePath() + "DICOMLOG.log"; } return this.logFilename; }
builder.append("layoutContentType", appender.getLayout().getContentType()); if (appender instanceof FileAppender) { builder.append(FILE_PARAM, ((FileAppender) appender).getFileName()); builder.append(FILE_PATTERN_PARAM, "(none)");