Java 类ch.qos.logback.core.FileAppender 实例源码
项目:audiveris
文件:LogUtil.java
/**
* Start a specific file logging, typically for the processing of a given book.
*
* @param name appender name (typically the book radix)
* @param logFolder target folder where the log file is to be written
*/
public static void addAppender (String name,
Path logFolder)
{
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
Logger root = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(
Logger.ROOT_LOGGER_NAME);
FileAppender fileAppender = new FileAppender();
PatternLayoutEncoder fileEncoder = new PatternLayoutEncoder();
fileAppender.setName(name);
fileAppender.setContext(loggerContext);
fileAppender.setAppend(false);
String now = new SimpleDateFormat("yyyyMMdd'T'HHmm").format(new Date());
Path logFile = logFolder.resolve(name + "-" + now + ".log");
fileAppender.setFile(logFile.toAbsolutePath().toString());
fileEncoder.setContext(loggerContext);
fileEncoder.setPattern("%date %level [%X{BOOK}%X{SHEET}] %25file:%-4line | %msg%n%ex");
fileEncoder.start();
fileAppender.setEncoder(fileEncoder);
fileAppender.start();
root.addAppender(fileAppender);
}
项目:audiveris
文件:LogUtil.java
/**
* Add a specific appender meant for FILE.
*/
public static void addFileAppender ()
{
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
Logger root = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger(
Logger.ROOT_LOGGER_NAME);
FileAppender fileAppender = new FileAppender();
PatternLayoutEncoder fileEncoder = new PatternLayoutEncoder();
fileAppender.setName("FILE");
fileAppender.setContext(loggerContext);
fileAppender.setAppend(false);
String now = new SimpleDateFormat("yyyyMMdd'T'HHmmss").format(new Date());
Path logPath = WellKnowns.LOG_FOLDER.resolve(now + ".log").toAbsolutePath();
fileAppender.setFile(logPath.toString());
fileEncoder.setContext(loggerContext);
fileEncoder.setPattern("%date %-5level [%X{BOOK}%X{SHEET}] %25replace(%file){'\\.java$',''} %-4line | %msg%n%ex");
fileEncoder.start();
fileAppender.setEncoder(fileEncoder);
fileAppender.start();
root.addAppender(fileAppender);
System.out.println("LogUtil. Logging to " + logPath);
}
项目:Mastering-Mesos
文件:SingularityRunnerBaseLogging.java
public FileAppender<ILoggingEvent> buildFileAppender(LoggerContext context, String file) {
FileAppender<ILoggingEvent> fileAppender = new FileAppender<>();
fileAppender.setFile(file);
fileAppender.setContext(context);
fileAppender.setPrudent(true);
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(context);
encoder.setPattern(primaryConfiguration.getLoggingPattern().or(baseConfiguration.getLoggingPattern()).or(JavaUtils.LOGBACK_LOGGING_PATTERN));
encoder.start();
fileAppender.setEncoder(encoder);
fileAppender.start();
return fileAppender;
}
项目:jlineup
文件:Util.java
static void logToFile(Parameters parameters) {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder ple = new PatternLayoutEncoder();
ple.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n");
ple.setContext(lc);
ple.start();
FileAppender<ILoggingEvent> fileAppender = new FileAppender<>();
fileAppender.setFile(parameters.getWorkingDirectory() + "/jlineup.log");
fileAppender.setEncoder(ple);
fileAppender.setContext(lc);
fileAppender.start();
ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger)LoggerFactory.getLogger(ch.qos.logback.classic.Logger.ROOT_LOGGER_NAME);
logger.addAppender(fileAppender);
logger.setLevel(Level.DEBUG);
}
项目:pravega
文件:SelfTestRunner.java
private static void setupLogging(TestConfig testConfig) {
val logFile = new java.io.File(testConfig.getTestLogPath());
if (logFile.delete()) {
TestLogger.log("Main", "Deleted log file %s.", logFile.getAbsolutePath());
}
// Configure slf4j to not log anything (console or whatever). This interferes with the console interaction.
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
context.getLoggerList().get(0).detachAndStopAllAppenders();
val fa = new FileAppender<ILoggingEvent>();
fa.setContext(context);
fa.setName("selftest");
fa.setFile(logFile.getAbsolutePath());
val encoder = new PatternLayoutEncoder();
encoder.setContext(context);
encoder.setPattern("%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level - %msg%n");
encoder.start();
fa.setEncoder(encoder);
fa.start();
context.getLoggerList().get(0).addAppender(fa);
context.getLoggerList().get(0).setLevel(Level.INFO);
//context.reset();
}
项目:logback-config
文件:ConfigConfigurator.java
private Appender<ILoggingEvent> configureAppender(LoggerContext loggerContext, String name, Config config)
throws ReflectiveOperationException {
List<Object> children = new ArrayList<>();
@SuppressWarnings("unchecked")
Class<Appender<ILoggingEvent>> clazz = (Class<Appender<ILoggingEvent>>) Class
.forName(config.getString("class"));
Appender<ILoggingEvent> appender = this.configureObject(loggerContext, clazz, config, children);
appender.setName(name);
for (Object child : children) {
if (child instanceof RollingPolicy) {
((RollingPolicy) child).setParent((FileAppender<?>) appender);
}
if (child instanceof LifeCycle) {
((LifeCycle) child).start();
}
}
appender.start();
return appender;
}
项目:gcplot
文件:DefaultLogsProcessorService.java
private Logger createLogger(File logFile) {
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
ch.qos.logback.classic.Logger log = loggers.get();
log.setAdditive(false);
FileAppender fileAppender = new FileAppender();
fileAppender.setContext(context);
fileAppender.setName(Thread.currentThread().getName());
fileAppender.setFile(logFile.getAbsolutePath());
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(context);
encoder.setPattern(LOG_PATTERN);
encoder.start();
fileAppender.setEncoder(encoder);
fileAppender.start();
log.detachAndStopAllAppenders();
log.addAppender(fileAppender);
return log;
}
项目:jill
文件:Log.java
/**
* Creates a new logger.
*
* @param name a name for the logger
* @param level the logging level for the logger
* @param file the file to output all logging to
* @return the created logger
*/
public static Logger createLogger(String name, Level level, String file) {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder ple = new PatternLayoutEncoder();
ple.setPattern("%date %level [%thread] %logger{10} [%file:%line]%n%msg%n%n");
ple.setContext(lc);
ple.start();
FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>();
fileAppender.setFile(file);
fileAppender.setEncoder(ple);
fileAppender.setAppend(false);
fileAppender.setContext(lc);
fileAppender.start();
logger = (Logger) LoggerFactory.getLogger(name);
logger.detachAndStopAllAppenders(); // detach console (doesn't seem to work)
logger.addAppender(fileAppender); // attach file appender
logger.setLevel(level);
logger.setAdditive(true); // set to true if root should log too
return logger;
}
项目:bartleby
文件:FileAppenderTest.java
@Test
public void smoke() {
String filename = CoreTestConstants.OUTPUT_DIR_PREFIX + "/fat-smoke.log";
FileAppender<Object> appender = new FileAppender<Object>();
appender.setEncoder(new DummyEncoder<Object>());
appender.setAppend(false);
appender.setFile(filename);
appender.setName("smoke");
appender.setContext(context);
appender.start();
appender.doAppend(new Object());
appender.stop();
File file = new File(filename);
assertTrue(file.exists());
assertTrue("failed to delete " + file.getAbsolutePath(), file.delete());
}
项目:bartleby
文件:FileAppenderTest.java
@Test
public void testCreateParentFolders() {
String filename = CoreTestConstants.OUTPUT_DIR_PREFIX + "/fat-testCreateParentFolders-" + diff
+ "/testCreateParentFolders.txt";
File file = new File(filename);
assertFalse(file.getParentFile().exists());
assertFalse(file.exists());
FileAppender<Object> appender = new FileAppender<Object>();
appender.setEncoder(new DummyEncoder<Object>());
appender.setAppend(false);
appender.setFile(filename);
appender.setName("testCreateParentFolders");
appender.setContext(context);
appender.start();
appender.doAppend(new Object());
appender.stop();
assertTrue(file.getParentFile().exists());
assertTrue(file.exists());
// cleanup
assertTrue("failed to delete " + file.getAbsolutePath(), file.delete());
File parent = file.getParentFile();
assertTrue("failed to delete " + parent.getAbsolutePath(), parent.delete());
}
项目:bartleby
文件:SafeModeFileAppender.java
static LoggerContext buildLoggerContext(String stamp, String filename,
boolean safetyMode) {
LoggerContext loggerContext = new LoggerContext();
FileAppender<ILoggingEvent> fa = new FileAppender<ILoggingEvent>();
PatternLayoutEncoder patternLayout = new PatternLayoutEncoder();
patternLayout.setPattern(stamp + " %5p - %m%n");
patternLayout.setContext(loggerContext);
patternLayout.start();
fa.setEncoder(patternLayout);
fa.setFile(filename);
fa.setAppend(true);
fa.setPrudent(safetyMode);
fa.setContext(loggerContext);
fa.start();
ch.qos.logback.classic.Logger root = loggerContext
.getLogger(Logger.ROOT_LOGGER_NAME);
root.addAppender(fa);
return loggerContext;
}
项目:bartleby
文件:FileAppenderPerf.java
static LoggerContext buildLoggerContext(String filename, boolean safetyMode) {
LoggerContext loggerContext = new LoggerContext();
FileAppender<ILoggingEvent> fa = new FileAppender<ILoggingEvent>();
PatternLayoutEncoder patternLayout = new PatternLayoutEncoder();
patternLayout.setPattern("%5p %c - %m%n");
patternLayout.setContext(loggerContext);
patternLayout.start();
fa.setEncoder(patternLayout);
fa.setFile(filename);
fa.setAppend(false);
fa.setPrudent(safetyMode);
fa.setContext(loggerContext);
fa.start();
ch.qos.logback.classic.Logger root = loggerContext
.getLogger(Logger.ROOT_LOGGER_NAME);
root.addAppender(fa);
return loggerContext;
}
项目:bartleby
文件:ConditionalTest.java
@SuppressWarnings("rawtypes")
@Test
public void conditionalConsoleApp_IF_THEN_True() throws JoranException,
IOException, InterruptedException {
InetAddress localhost = InetAddress.getLocalHost();
System.out.println("In conditionalConsoleApp_IF_THEN_True, canonicalHostName=\"" + localhost.getCanonicalHostName() + "] and hostNmae=\"" + localhost.getHostName() + "\"");
context.putProperty("aHost", localhost.getHostName());
String configFileAsStr = ClassicTestConstants.JORAN_INPUT_PREFIX
+ "conditional/conditionalConsoleApp.xml";
configure(configFileAsStr);
FileAppender fileAppender = (FileAppender) root.getAppender("FILE");
assertNotNull(fileAppender);
ConsoleAppender consoleAppender = (ConsoleAppender) root.getAppender("CON");
assertNotNull(consoleAppender);
StatusChecker checker = new StatusChecker(context);
checker.assertIsErrorFree();
}
项目:bartleby
文件:ConditionalTest.java
@SuppressWarnings("rawtypes")
@Test
public void conditionalConsoleApp_IF_THEN_False() throws JoranException,
IOException, InterruptedException {
String configFileAsStr = ClassicTestConstants.JORAN_INPUT_PREFIX
+ "conditional/conditionalConsoleApp.xml";
configure(configFileAsStr);
FileAppender fileAppender = (FileAppender) root.getAppender("FILE");
assertNotNull(fileAppender);
ConsoleAppender consoleAppender = (ConsoleAppender) root.getAppender("CON");
assertNull(consoleAppender);
StatusChecker checker = new StatusChecker(context);
checker.assertIsErrorFree();
}
项目:bartleby
文件:ConditionalTest.java
@SuppressWarnings("rawtypes")
@Test
public void conditionalConsoleApp_IF_THEN_ELSE() throws JoranException,
IOException, InterruptedException {
String configFileAsStr = ClassicTestConstants.JORAN_INPUT_PREFIX
+ "conditional/conditionalConsoleApp_ELSE.xml";
configure(configFileAsStr);
FileAppender fileAppender = (FileAppender) root.getAppender("FILE");
assertNotNull(fileAppender);
ConsoleAppender consoleAppender = (ConsoleAppender) root.getAppender("CON");
assertNull(consoleAppender);
ListAppender listAppender = (ListAppender) root.getAppender("LIST");
assertNotNull(listAppender);
// StatusPrinter.printIfErrorsOccured(context);
StatusChecker checker = new StatusChecker(context);
checker.assertIsErrorFree();
}
项目:bartleby
文件:LoggingToFileThroughput.java
static Logger buildLoggerContext(LoggerContext lc) {
Logger root = lc.getLogger(Logger.ROOT_LOGGER_NAME);
PatternLayoutEncoder patternLayout = new PatternLayoutEncoder();
patternLayout.setContext(lc);
patternLayout.setPattern("%d %l [%t] - %msg%n");
patternLayout.start();
FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>();
fileAppender.setContext(lc);
fileAppender.setFile("target/lbclassic135.log");
fileAppender.setEncoder(patternLayout);
fileAppender.setAppend(false);
fileAppender.start();
root.addAppender(fileAppender);
return lc.getLogger(LoggingToFileThroughput.class);
}
项目:bartleby
文件:IOPerformance.java
public IOPerformance(boolean _immediateFlush, long _len) {
this.len = _len;
this.immediateFlush = _immediateFlush;
context = new LoggerContext();
logger = context.getLogger("logger-" + getName());
// A FileAppender is created according to the buffering and
// immediate flush setting of this IO instance.
FileAppender<ILoggingEvent> fa = new FileAppender<ILoggingEvent>();
fa.setName("FILE");
PatternLayoutEncoder pa = new PatternLayoutEncoder();
pa.setPattern("%r %5p %c [%t] - %m%n");
pa.setContext(context);
pa.start();
fa.setEncoder(pa);
fa.setFile(LOG_FILE);
fa.setAppend(true);
fa.setContext(context);
fa.start();
((ch.qos.logback.classic.Logger) logger).addAppender(fa);
StatusPrinter.print(context);
}
项目:openhab-hdl
文件:LoggingPersistenceService.java
/**
* @{inheritDoc}
*/
public void store(Item item, String alias) {
if (initialized) {
FileAppender<ILoggingEvent> appender = appenders.get(alias);
if (appender==null) {
synchronized(appenders) {
// do a second check in case one exists by now
if (!appenders.containsKey(alias)) {
appender = createNewAppender(alias);
appenders.put(alias, appender);
}
}
}
ItemLoggingEvent event = new ItemLoggingEvent(item);
appender.doAppend(event);
logger.debug("Logged item '{}' to file '{}.log'", new String[] { item.getName(), alias });
}
}
项目:openhab-hdl
文件:LoggingPersistenceService.java
protected FileAppender<ILoggingEvent> createNewAppender(String alias) {
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(context);
encoder.setPattern(pattern);
encoder.start();
FileAppender<ILoggingEvent> appender = new FileAppender<ILoggingEvent>();
appender.setAppend(true);
appender.setFile(LOG_FOLDER + File.separator + alias + LOG_FILEEXT);
appender.setEncoder(encoder);
appender.setContext(context);
appender.start();
return appender;
}
项目:agent-tooling
文件:AgentLog.java
@Override
public Appender<ILoggingEvent> buildAppender(Context logcingContext, String fileName) throws JoranException {
// first sets up the paterns for log layout
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setPattern(logTemplate);
encoder.setContext(logcingContext);
encoder.start();
// then create a file appender for the given filename
FileAppender<ILoggingEvent> appender = new FileAppender<ILoggingEvent>();
appender.setContext(logcingContext);
appender.setAppend(false);
appender.setFile(logFolderName + "/" + fileName + ".log");
appender.setEncoder(encoder);
appender.start();
return appender;
}
项目:IVCT_Framework
文件:JMSLogSink.java
/**
* Finds or creates a logger for the test case called tcName with an appender writing
* to file named <tcName>.log
*
* @param tcName
* @return
*/
private Logger getTestCaseLogger(String tcName, String sutName, String sutDir, String testScheduleName) {
FileAppender<ILoggingEvent> fileAppender = appenderMap.get(tcName);
if (fileAppender == null) {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder ple = new PatternLayoutEncoder();
ple.setPattern("%date %level [%logger{36}] [%file:%line] %X{testcase}: %msg%n");
ple.setContext(lc);
ple.start();
fileAppender = new FileAppender<ILoggingEvent>();
fileAppender.setFile(sutDir + '/' + testScheduleName + '/' + tcName + ".log");
fileAppender.setEncoder(ple);
fileAppender.setContext(lc);
fileAppender.start();
appenderMap.put(tcName, fileAppender);
}
Logger logger = (Logger) LoggerFactory.getLogger(tcName);
logger.addAppender(fileAppender);
return logger;
}
项目:bootique-logback
文件:FileAppenderFactory.java
protected FileAppender<ILoggingEvent> createRollingFileAppender(Encoder<ILoggingEvent> encoder,
LoggerContext context,
RollingPolicyFactory rollingPolicy) {
RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<>();
appender.setFile(file);
appender.setContext(context);
appender.setEncoder(encoder);
// Setup rolling policy
RollingPolicy policy = rollingPolicy.createRollingPolicy(context);
appender.setRollingPolicy(policy);
policy.setParent(appender);
// Setup triggering policy
TriggeringPolicy<ILoggingEvent> triggeringPolicy = rollingPolicy.createTriggeringPolicy(context);
if (triggeringPolicy != null) {
appender.setTriggeringPolicy(triggeringPolicy);
triggeringPolicy.start();
}
policy.start();
appender.start();
return appender;
}
项目:BikeMan
文件:LogsResource.java
/**
* Get the actively used log file from the underlying logging mechanism
*/
private Optional<String> getActiveLogFile() {
Logger rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
Iterator<Appender<ILoggingEvent>> itr = rootLogger.iteratorForAppenders();
// Iterate over the appenders
while (itr.hasNext()) {
Appender<ILoggingEvent> appender = itr.next();
// found a file appender
if (appender instanceof FileAppender) {
FileAppender<ILoggingEvent> fileAppender = (FileAppender<ILoggingEvent>) appender;
return Optional.of(fileAppender.getFile());
}
}
// no file appender
return Optional.absent();
}
项目:yangtools
文件:Main.java
private static void setOutput(final String... paths) throws IOException {
LOG_ROOT.getLoggerContext().reset();
final PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setPattern("%date %level [%thread] [%file:%line] %msg%n");
encoder.setContext(LOG_ROOT.getLoggerContext());
encoder.start();
for (final String path : paths) {
// create FileAppender
final FileAppender<ILoggingEvent> logfileOut = new FileAppender<>();
logfileOut.setAppend(false);
logfileOut.setFile(path);
logfileOut.setContext(LOG_ROOT.getLoggerContext());
logfileOut.setEncoder(encoder);
logfileOut.start();
// attach the rolling file appender to the root logger
LOG_ROOT.addAppender(logfileOut);
}
}
项目:jackrabbit-pm-tools
文件:Main.java
private static void initializeLogFile() {
final LoggerContext loggerContext = ROOT_LOGGER.getLoggerContext();
final PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n");
encoder.setContext(loggerContext);
encoder.start();
final FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>();
fileAppender.setFile("migration.log");
fileAppender.setName("file");
fileAppender.setEncoder(encoder);
fileAppender.setContext(loggerContext);
fileAppender.start();
ROOT_LOGGER.addAppender(fileAppender);
}
项目:baseline
文件:Logging.java
private static void setupFileLogging(Logger root, ThresholdFilter filter, String logfilePath) {
MinimalLayout formatter = new MinimalLayout(root.getLoggerContext());
formatter.start();
// setup the file appender
FileAppender<ILoggingEvent> appender = new FileAppender<>();
appender.setFile(logfilePath);
appender.setContext(root.getLoggerContext());
appender.setLayout(formatter);
appender.start();
// wrap it in an async appender
final AsyncAppender asyncAppender = new AsyncAppender();
asyncAppender.setContext(root.getLoggerContext());
asyncAppender.addAppender(appender);
asyncAppender.addFilter(filter);
asyncAppender.start();
// now, add it to the root logger
root.addAppender(asyncAppender);
}
项目:crawljax
文件:LogUtil.java
/**
* Configure file logging and stop console logging.
*
* @param filename
* Log to this file.
*/
@SuppressWarnings("unchecked")
static void logToFile(String filename) {
Logger rootLogger = (Logger) LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
FileAppender<ILoggingEvent> fileappender = new FileAppender<>();
fileappender.setContext(rootLogger.getLoggerContext());
fileappender.setFile(filename);
fileappender.setName("FILE");
ConsoleAppender<?> console = (ConsoleAppender<?>) rootLogger.getAppender("STDOUT");
fileappender.setEncoder((Encoder<ILoggingEvent>) console.getEncoder());
fileappender.start();
rootLogger.addAppender(fileappender);
console.stop();
}
项目:SORCER
文件:RemoteLoggerManager.java
private Appender<ILoggingEvent> createAppender(String loggerName, String prefix) {
Appender<ILoggingEvent> appender;
FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>();
fileAppender.setName(loggerName);
File file = new File(logDir, prefix + "-" + loggerName + ".log");
fileAppender.setFile(file.getPath());
fileAppender.setContext(loggerFactory);
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(loggerFactory);
encoder.setPattern("%-5level %d{HH:mm:ss.SSS} [%t] %logger{36} - %msg%n%rEx");
fileAppender.setEncoder(encoder);
appender = fileAppender;
encoder.start();
appender.start();
return appender;
}
项目:gocd
文件:DefaultPluginLoggingService.java
private FileAppender<ILoggingEvent> getAppender(String pluginId) {
File pluginLogFileLocation = pluginLogFile(pluginId);
RollingFileAppender<ILoggingEvent> rollingFileAppender = new RollingFileAppender<>();
rollingFileAppender.setEncoder(LogHelper.encoder());
rollingFileAppender.setContext(LogHelper.LOGGER_CONTEXT);
rollingFileAppender.setFile(pluginLogFileLocation.getPath());
rollingFileAppender.setName(rollingFileAppenderName(pluginId));
LogHelper.rollingPolicyForAppender(
rollingFileAppender,
"5 MB",
"20 MB",
7
);
rollingFileAppender.start();
return rollingFileAppender;
}
项目:gocd
文件:DefaultPluginLoggingServiceTest.java
private void assertPluginLogFile(String pluginId, String expectedPluginLogFileName) {
SystemEnvironment systemEnvironment = mock(SystemEnvironment.class);
DefaultPluginLoggingService loggingService = new DefaultPluginLoggingService(systemEnvironment);
loggingService.debug(pluginId, "some-logger-name", "message");
ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("plugin." + pluginId);
ArrayList<Appender<ILoggingEvent>> appenders = new ArrayList<>();
logger.iteratorForAppenders().forEachRemaining(new Consumer<Appender<ILoggingEvent>>() {
@Override
public void accept(Appender<ILoggingEvent> iLoggingEventAppender) {
appenders.add(iLoggingEventAppender);
}
});
String loggingDirectory = loggingService.getCurrentLogDirectory();
assertThat(appenders.size(), is(1));
assertThat(new File(((FileAppender) appenders.get(0)).rawFileProperty()), is(new File(loggingDirectory, expectedPluginLogFileName)));
}
项目:gocd
文件:FileLocationProvider.java
@Override
public Map<String, Object> asJson() {
LinkedHashMap<String, Object> json = new LinkedHashMap<>();
json.put("loc.config.dir", systemEnvironment.configDir().getAbsolutePath());
List<Logger> loggers = LOGGER_CONTEXT.getLoggerList();
Appender[] appenders = getAppenders(loggers);
for (int i = 0; i < appenders.length; i++) {
Appender appender = appenders[i];
if (!isFileAppender(appender)) {
continue;
}
FileAppender fileAppender = (FileAppender) appender;
File logFile = new File(fileAppender.rawFileProperty());
json.put("loc.log.root." + i, new File(logFile.getAbsolutePath()).getParent());
json.put("loc.log.basename." + i, logFile.getName());
}
return json;
}
项目:Hive2Hive
文件:LoggerMenu.java
private static String createRootLogger() {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder ple = new PatternLayoutEncoder();
ple.setPattern("%d{HH:mm:ss} %-12.-12([%thread])[%-5level] %logger{0} -%msg%n");
ple.setContext(loggerContext);
ple.start();
String fileName = String.format("logs/h2h-log %s.txt",
new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss").format(System.currentTimeMillis()));
FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>();
fileAppender.setFile(fileName);
fileAppender.setEncoder(ple);
fileAppender.setContext(loggerContext);
fileAppender.start();
Logger logbackLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
logbackLogger.addAppender(fileAppender);
logbackLogger.setLevel(Level.DEBUG);
logbackLogger.setAdditive(false);
return fileName;
}
项目:Singularity
文件:SingularityRunnerBaseLogging.java
public FileAppender<ILoggingEvent> buildFileAppender(LoggerContext context, String file) {
FileAppender<ILoggingEvent> fileAppender = new FileAppender<>();
fileAppender.setFile(file);
fileAppender.setContext(context);
fileAppender.setPrudent(true);
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(context);
encoder.setPattern(primaryConfiguration.getLoggingPattern().or(baseConfiguration.getLoggingPattern()).or(JavaUtils.LOGBACK_LOGGING_PATTERN));
encoder.start();
fileAppender.setEncoder(encoder);
fileAppender.start();
return fileAppender;
}
项目:comeon
文件:UploaderReporter.java
public Optional<String> findLoggingFileLocation() {
final Optional<String> fileLocation;
if (LOGGER instanceof ch.qos.logback.classic.Logger) {
final ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) LOGGER;
final Appender<ILoggingEvent> appender = logbackLogger.getAppender("UPLOAD_REPORTER");
if (appender != null && appender instanceof FileAppender) {
final FileAppender fileAppender = (FileAppender) appender;
fileLocation = Optional.of(fileAppender.getFile());
} else {
fileLocation = Optional.empty();
}
} else {
fileLocation = Optional.empty();
}
return fileLocation;
}
项目:css-analyser
文件:FileLogger.java
public static void addFileAppender(String filePath, boolean append) {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
FileAppender<ILoggingEvent> fileAppender = new FileAppender<ILoggingEvent>();
fileAppender.setContext(loggerContext);
fileAppender.setName("css-analyzer");
// set the file name
fileAppender.setFile(filePath);
fileAppender.setAppend(append);
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(loggerContext);
//encoder.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level - %msg [%C{1}]%n");
encoder.setPattern("%d{HH:mm:ss.SSS} [%thread] %-5level - %msg%n");
encoder.start();
fileAppender.setEncoder(encoder);
fileAppender.start();
appenders.add(fileAppender);
logBackLogger.addAppender(fileAppender);
}
项目:openhab1-addons
文件:LoggingPersistenceService.java
/**
* @{inheritDoc}
*/
@Override
public void store(Item item, String alias) {
if (initialized) {
FileAppender<ILoggingEvent> appender = appenders.get(alias);
if (appender == null) {
synchronized (appenders) {
// do a second check in case one exists by now
if (!appenders.containsKey(alias)) {
appender = createNewAppender(alias);
appenders.put(alias, appender);
}
}
}
ItemLoggingEvent event = new ItemLoggingEvent(item);
appender.doAppend(event);
logger.debug("Logged item '{}' to file '{}.log'", new String[] { item.getName(), alias });
}
}
项目:openhab1-addons
文件:LoggingPersistenceService.java
protected FileAppender<ILoggingEvent> createNewAppender(String alias) {
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(context);
encoder.setPattern(pattern);
encoder.start();
FileAppender<ILoggingEvent> appender = new FileAppender<ILoggingEvent>();
appender.setAppend(true);
appender.setFile(LOG_FOLDER + File.separator + alias + LOG_FILEEXT);
appender.setEncoder(encoder);
appender.setContext(context);
appender.start();
return appender;
}
项目:Botico2
文件:Botico.java
public static Logger createLogger(Path pathLogs, String clientName)
{
Logger log = (Logger) LoggerFactory.getLogger("Botico-" + clientName);
log.setLevel(Level.DEBUG);
LoggerContext cont = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder pat = new PatternLayoutEncoder();
pat.setPattern("[%date] [%logger{10}|%thread] [%level] %msg%n");
pat.setContext(cont);
pat.start();
FileAppender<ILoggingEvent> fapp = new FileAppender<>();
fapp.setFile(pathLogs.resolve("botico-" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd_HH-mm-ss")) + ".log").toString());
fapp.setEncoder(pat);
fapp.setContext(cont);
fapp.start();
ConsoleAppender<ILoggingEvent> capp = new ConsoleAppender<>();
capp.setTarget("System.out");
capp.setContext(cont);
capp.setEncoder(pat);
capp.start();
log.addAppender(fapp);
log.addAppender(capp);
log.setAdditive(false);
return log;
}
项目:app-logbrowser
文件:LogHelper.java
private static Path getLogFromLogback( final File logbackConfig )
{
try
{
LoggerContext loggerContext = new LoggerContext();
JoranConfigurator jc = new JoranConfigurator();
jc.setContext( loggerContext );
loggerContext.reset();
jc.doConfigure( logbackConfig );
for ( Logger logger : loggerContext.getLoggerList() )
{
for ( Iterator<Appender<ILoggingEvent>> index = logger.iteratorForAppenders(); index.hasNext(); )
{
Appender<ILoggingEvent> appender = index.next();
if ( appender instanceof FileAppender )
{
return Paths.get( ( (FileAppender) appender ).getFile() );
}
}
}
return null;
}
catch ( Exception e )
{
return null;
}
}
项目:Hydrograph
文件:ExecutionTrackingLogger.java
private Logger getNewLogger(String jobID,String fileLogLocation) {
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
FileAppender<ILoggingEvent> fileAppender = new FileAppender<>();
fileAppender.setContext(loggerContext);
fileAppender.setFile(fileLogLocation);
/*SizeBasedTriggeringPolicy<ILoggingEvent> triggeringPolicy = new SizeBasedTriggeringPolicy<ILoggingEvent>();
triggeringPolicy.setMaxFileSize("10MB");
triggeringPolicy.start();*/
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(loggerContext);
encoder.setPattern("%msg%n");
encoder.start();
fileAppender.setEncoder(encoder);
fileAppender.start();
// attach the rolling file appender to the logger of your choice
Logger logbackLogger = loggerContext.getLogger(jobID);
((ch.qos.logback.classic.Logger) logbackLogger).addAppender(fileAppender);
executionTrackingLoggers.put(jobID, logbackLogger);
return logbackLogger;
}