Mercurial > hg > digilib-old
changeset 572:800f2bb57f1f
slightly better logging
author | robcast |
---|---|
date | Wed, 22 Dec 2010 17:59:01 +0100 |
parents | 6e8488acb499 |
children | 5d80f333828a |
files | servlet/src/digilib/servlet/PDFCache.java servlet/src/digilib/servlet/Scaler.java servlet/src/digilib/servlet/ServletOps.java servlet/src/digilib/servlet/Texter.java |
diffstat | 4 files changed, 86 insertions(+), 43 deletions(-) [+] |
line wrap: on
line diff
--- a/servlet/src/digilib/servlet/PDFCache.java Wed Dec 22 14:46:00 2010 +0100 +++ b/servlet/src/digilib/servlet/PDFCache.java Wed Dec 22 17:59:01 2010 +0100 @@ -182,7 +182,7 @@ } else if (status == PDFStatus.DONE) { // pdf created -- send it try { - ServletOps.sendFile(getCacheFile(docid), "application/pdf", getDownloadFilename(pdfji), response); + ServletOps.sendFile(getCacheFile(docid), "application/pdf", getDownloadFilename(pdfji), response, logger); //sendFile(docid, getDownloadFilename(pdfji), response); } catch (Exception e) { // sending didn't work
--- a/servlet/src/digilib/servlet/Scaler.java Wed Dec 22 14:46:00 2010 +0100 +++ b/servlet/src/digilib/servlet/Scaler.java Wed Dec 22 17:59:01 2010 +0100 @@ -44,7 +44,7 @@ protected static Logger accountlog = Logger.getLogger("account.request"); /** gengeral logger for this class */ - protected static Logger logger = Logger.getLogger("digilib.servlet"); + protected static Logger logger = Logger.getLogger("digilib.scaler"); /** logger for authentication related */ protected static Logger authlog = Logger.getLogger("digilib.auth"); @@ -220,7 +220,7 @@ mt = "application/octet-stream"; } logger.debug("Sending RAW File as is."); - ServletOps.sendFile(fileToLoad.getFile(), mt, null, response); + ServletOps.sendFile(fileToLoad.getFile(), mt, null, response, logger); logger.info("Done in " + (System.currentTimeMillis() - startTime) + "ms"); return; } @@ -228,7 +228,7 @@ // if possible, send the image without actually having to transform it if (! jobTicket.isTransformRequired()) { logger.debug("Sending File as is."); - ServletOps.sendFile(fileToLoad.getFile(), null, null, response); + ServletOps.sendFile(fileToLoad.getFile(), null, null, response, logger); logger.info("Done in " + (System.currentTimeMillis() - startTime) + "ms"); return; } @@ -246,7 +246,7 @@ // wait for result DocuImage img = jobResult.get(); // send image - ServletOps.sendImage(img, null, response); + ServletOps.sendImage(img, null, response, logger); logger.debug("Job Processing Time: " + (System.currentTimeMillis() - startTime) + "ms"); @@ -308,7 +308,7 @@ response.sendError(status, msg); } else if (img != null) { // default: image - ServletOps.sendFile(img, null, null, response); + ServletOps.sendFile(img, null, null, response, logger); } } catch (Exception e) { logger.error("Error sending error!", e);
--- a/servlet/src/digilib/servlet/ServletOps.java Wed Dec 22 14:46:00 2010 +0100 +++ b/servlet/src/digilib/servlet/ServletOps.java Wed Dec 22 17:59:01 2010 +0100 @@ -23,7 +23,6 @@ import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; @@ -37,7 +36,6 @@ import digilib.image.DocuImage; import digilib.image.ImageOpException; -import digilib.io.FileOpException; import digilib.io.FileOps; public class ServletOps { @@ -182,6 +180,32 @@ * The local file is copied to the <code>OutputStream</code> of the * <code>ServletResponse</code>. If mt is null then the mime-type is * auto-detected with mimeForFile. + * + * @param f + * Image file to be sent. + * @param mt + * mime-type of the file. + * @param name + * name of the download file (for application/x) + * @param res + * ServletResponse where the image file will be sent. + * @throws ImageOpException + * @throws ServletException + * Exception on sending data. + */ + public static void sendFile(File f, String mt, String name, + HttpServletResponse response) throws ImageOpException, + ServletException { + // use default logger + ServletOps.sendFile(f, mt, name, response, ServletOps.logger); + } + + /** + * Transfers an image file as-is with the mime type mt. + * + * The local file is copied to the <code>OutputStream</code> of the + * <code>ServletResponse</code>. If mt is null then the mime-type is + * auto-detected with mimeForFile. * @param f * Image file to be sent. * @param mt @@ -190,10 +214,12 @@ * name of the download file (for application/x) * @param res * ServletResponse where the image file will be sent. + * @param logger + * Logger to use * @throws ImageOpException * @throws ServletException Exception on sending data. */ - public static void sendFile(File f, String mt, String name, HttpServletResponse response) + public static void sendFile(File f, String mt, String name, HttpServletResponse response, Logger logger) throws ImageOpException, ServletException { logger.debug("sendRawFile(" + mt + ", " + f + ")"); if (mt == null) { @@ -243,6 +269,22 @@ public static void sendImage(DocuImage img, String mimeType, HttpServletResponse response) throws ImageOpException, ServletException { + ServletOps.sendImage(img, mimeType, response, ServletOps.logger); + } + + /** + * Write image img to ServletResponse response. + * + * @param img + * @param mimeType + * @param response + * @param logger + * @throws ImageOpException + * @throws ServletException Exception on sending data. + */ + public static void sendImage(DocuImage img, String mimeType, + HttpServletResponse response, Logger logger) throws ImageOpException, + ServletException { try { OutputStream outstream = response.getOutputStream(); // setup output -- if mime type is set use that otherwise
--- a/servlet/src/digilib/servlet/Texter.java Wed Dec 22 14:46:00 2010 +0100 +++ b/servlet/src/digilib/servlet/Texter.java Wed Dec 22 17:59:01 2010 +0100 @@ -44,8 +44,6 @@ */ public class Texter extends HttpServlet { - private static final long serialVersionUID = -8539178734033662322L; - /** Servlet version */ public static String tlVersion = "0.1b2"; @@ -55,6 +53,9 @@ /** general logger */ Logger logger = Logger.getLogger("digilib.texter"); + /** logger for accounting requests */ + protected static Logger accountlog = Logger.getLogger("account.texter.request"); + /** FileOps instance */ FileOps fileOp; @@ -109,6 +110,7 @@ */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + accountlog.info("GET from " + request.getRemoteAddr()); // do the processing processRequest(request, response); } @@ -121,44 +123,43 @@ */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + accountlog.info("POST from " + request.getRemoteAddr()); // do the processing processRequest(request, response); } - protected void processRequest(HttpServletRequest request, - HttpServletResponse response) throws ServletException, IOException { - - /* - * request parameters - */ + protected void processRequest(HttpServletRequest request, + HttpServletResponse response) throws ServletException, IOException { + + /* + * request parameters + */ // create new request with defaults DigilibRequest dlRequest = new DigilibRequest(request); - try { - - /* - * find the file to load/send - */ - TextFile f = getTextFile(dlRequest, "/txt"); - if (f != null) { - ServletOps.sendFile(f.getFile(), null, null, response); - } else { - f = getTextFile(dlRequest, ""); - if (f != null) { - ServletOps.sendFile(f.getFile(), null, null, response); - } else { - response.sendError(HttpServletResponse.SC_NOT_FOUND, "Text-File not found!"); - //ServletOps.htmlMessage("No Text-File!", response); - } - } - - } catch (ImageOpException e) { - logger.error("ERROR: File IO Error: ", e); - try { - ServletOps.htmlMessage("ERROR: File IO Error: " + e, response); - } catch (FileOpException ex) { - } // so we don't get a loop - } - } + try { + /* + * find the file to load/send + */ + TextFile f = getTextFile(dlRequest, "/txt"); + if (f != null) { + ServletOps.sendFile(f.getFile(), null, null, response, logger); + } else { + f = getTextFile(dlRequest, ""); + if (f != null) { + ServletOps.sendFile(f.getFile(), null, null, response, logger); + } else { + response.sendError(HttpServletResponse.SC_NOT_FOUND, + "Text-File not found!"); + // ServletOps.htmlMessage("No Text-File!", response); + } + } + + } catch (ImageOpException e) { + // most likely wrong file format... + logger.error("ERROR sending text file: ", e); + response.sendError(HttpServletResponse.SC_BAD_REQUEST); + } + } /**