2013-10-18 22 views

Odpowiedz

5

będziemy chcieli następujące osadzonym na starcie molo ...

(to przy założeniu, Jetty 9)

HandlerCollection handlers = new HandlerCollection(); 
ContextHandlerCollection contexts = new ContextHandlerCollection(); 
// your context specific handlers are added to "contexts" here 
server.setHandler(handlers); 

NCSARequestLog requestLog = new NCSARequestLog(); 
requestLog.setFilename("/path/to/my/logs/yyyy_mm_dd.request.log"); 
requestLog.setFilenameDateFormat("yyyy_MM_dd"); 
requestLog.setRetainDays(90); 
requestLog.setAppend(true); 
requestLog.setExtended(true); 
requestLog.setLogCookies(false); 
requestLog.setLogTimeZone("GMT"); 
RequestLogHandler requestLogHandler = new RequestLogHandler(); 
requestLogHandler.setRequestLog(requestLog); 
handlers.addHandler(requestLogHandler); 
+0

Gdzie to dodam. Przepraszam, jestem bardzo nowy w Jetty. Czy mogę to skonfigurować w web.xml? – sab

+1

Powiedziałeś, że masz wbudowany pomost, co oznacza, że ​​masz kod Java, który uruchamia serwer pomostowy. Poszukaj tego kodu, wyszukaj "nowy serwer (". Albo to, albo nie korzystasz z osadzonego pomostu. " –

+0

Nie mam dostępu do tej części kodu. Wszystko, co mam, to sposób wysyłania parametrów do jvm lub edytowania sieci .xml. Czy jest jakiś sposób, aby to zrobić z web.xml? – sab

1

pomost Maven:

<dependency> 
     <groupId>org.eclipse.jetty.aggregate</groupId> 
     <artifactId>jetty-all</artifactId> 
     <version>9.3.8.v20160314</version> 
     <type>pom</type> 
    </dependency> 

Kod:

NCSARequestLog requestLog = new NCSARequestLog(); 
requestLog.setFilename("/path/to/my/logs/yyyy_mm_dd.request.log"); 
requestLog.setFilenameDateFormat("yyyy_MM_dd"); 
requestLog.setRetainDays(90); 
requestLog.setAppend(true); 
requestLog.setExtended(true); 
requestLog.setLogCookies(false); 
requestLog.setLogTimeZone("GMT"); // or GMT+2 and so on. 

server.setRequestLog(requestLog); // here will set global request log 

NCSARequestLog jest synchronizacja dziennika, jeśli chcesz użyć log4j, zrób to tak:

public class AccessLogHandler extends AbstractNCSARequestLog { 
    private Log logger = LogFactory.getLog(AccessLogHandler.class); 
    @Override 
    protected boolean isEnabled() { 
     return true; 
    } 

    @Override 
    public void write(String requestEntry) throws IOException { 
     logger.info(requestEntry); 
    } 

} 

korzystanie AccessLogHandler zastąpić NCSARequestLog i config swoją log4j.properties.