22
33import fi .iki .elonen .NanoHTTPD ;
44
5- import java .io .File ;
6- import java .io . FileInputStream ;
7- import java .io . FileNotFoundException ;
8- import java .io . IOException ;
5+ import java .io .* ;
6+ import java .text . SimpleDateFormat ;
7+ import java .util . Date ;
8+ import java .util . Map ;
99
1010public class WebServer extends NanoHTTPD {
1111 private static Integer port = Integer .valueOf (new FileManager ().getStringFromConfig ("WebServer.port" ));
@@ -18,9 +18,10 @@ public WebServer(String hostname, int port) {
1818 super (hostname , port );
1919 }
2020 public static boolean running = Boolean .parseBoolean (new FileManager ().getStringFromConfig ("WebServer.isRunning" ));
21-
21+ private File logFile ;
2222 public WebServer () {
2323 super (port );
24+ logFile = new File (Main .instance .getDataFolder () + "/logs/latest.log" );
2425 }
2526 //TODO:
2627 //TODO: FIX TOGGLE V CONFIGU A CHATE ATD..
@@ -43,19 +44,23 @@ public void start() {
4344 }
4445 }
4546 }
46- public void stopServer () {
47- stop ();
48- running = false ;
49- FileManager .setStringInConfig ("WebServer.isRunning" , String .valueOf (false ));
50- Main .getInstance ().getLogger ().warning ("Server stopped" );
51- }
5247 @ Override
5348 public Response serve (IHTTPSession session ) {
5449 String uri = session .getUri ();
5550 Method method = session .getMethod ();
5651
5752 File file = new File (Main .instance .getDataFolder () + "/web/" + uri );
5853 try {
54+ try (FileWriter writer = new FileWriter (logFile , true )) {
55+ Map <String , String > headers = session .getHeaders ();
56+ String referer = headers .get ("referer" );
57+ String agent = headers .get ("user-agent" );
58+ String ip = headers .get ("remote-addr" );
59+ String timeStamp = new SimpleDateFormat ("dd-MM-yyyy ss:mm:HH" ).format (new Date ());
60+ writer .append (timeStamp + " " + session .getMethod () + " " + session .getUri () + " " + ip + " " + agent + " " + referer + "\n " );
61+ } catch (IOException e ) {
62+ e .printStackTrace ();
63+ }
5964 if (Method .GET .equals (method ) && "/" .equals (uri )) file = new File (Main .instance .getDataFolder () + "/web/" + "index.html" );
6065 return newChunkedResponse (Response .Status .OK , "text/html" ,
6166 new FileInputStream (file ));
0 commit comments