Example usage for org.apache.commons.logging Log toString

List of usage examples for org.apache.commons.logging Log toString

Introduction

In this page you can find the example usage for org.apache.commons.logging Log toString.

Prototype

public String toString() 

Source Link

Document

Returns a string representation of the object.

Usage

From source file:org.bibsonomy.logging.LogMe.java

@Override
public void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException {

    // Antwort am Anfang senden, damit Browser nicht warten muss
    response.setContentType("text/html");
    PrintWriter pw = new PrintWriter(response.getOutputStream());

    /*/*  ww  w. j  a va  2s. c  o m*/
          pw.println("");
          pw.println("<head><title>Sven TEST</title></head>");
          pw.println("");
          pw.println("<body>");
          pw.println("");
          pw.println("Hallo!");
          pw.println("");
          pw.println("</body>");
          pw.println("</html>");
    */

    //      pw.println("");
    pw.close();

    int dompath_length = 0;

    try {
        dompath_length = req.getParameter("dompath").length();
    } catch (NullPointerException e) {
        // kein dompath angegeben 
    }

    log.debug("dompath_lenght = " + dompath_length);

    // if dompath is empty 
    if (dompath_length > 0) {

        //      String userAgent =  req.getHeader("user-agent");
        //      System.out.println("Hallo " + userAgent);

        // schreibe Cookies in Cookie-Array cookie
        Cookie[] cookies = req.getCookies();
        //      System.out.println (req.getParameter("dompath"));
        //      System.out.println (req.getHeader("remote_addr"));

        @SuppressWarnings("unchecked")
        Enumeration<String> headerNames = req.getHeaderNames();
        String cookieUsername = "";
        String cookieSessionId = "";
        String completeHeader = "";
        String logType = "";
        int separatorIndex = 0;

        while (headerNames.hasMoreElements()) {
            String element = headerNames.nextElement();
            completeHeader += (element + ": " + req.getHeader(element) + "\n");
        }

        if (cookies != null) {
            for (int i = 0; i < cookies.length; i++) {
                //              System.out.println ("Cookie " + i + ": " + cookies[i].getName() + " = " + cookies[i].getValue());
                if (cookies[i].getName().equals("_currUser")) {
                    separatorIndex = cookies[i].getValue().indexOf("%20");
                    cookieUsername = cookies[i].getValue().substring(0, separatorIndex);
                }

                if (cookies[i].getName().equals("JSESSIONID")) {
                    cookieSessionId = cookies[i].getValue();
                }
            }
        }

        // build an array for used ids with all char strings, beginning with # and ending with / or . 
        // (ending with non a-z, A-Z, 0-9 or -)
        // regular expression: /#([A-Za-z0-9\-]+)/

        Pattern p = Pattern.compile("#([a-zA-Z0-9-_]+)");
        String text = req.getParameter("dompath2");
        @SuppressWarnings("unused")
        List<String> idArray = getMatches(p, text);

        //          System.out.println (idArray.toString());

        // then build another array for used classes with all char strings, beginning with . and ending with / or .
        // if class contains spaces, split it to multiple classes

        // regular expression: /\.[A-Za-z0-9\- ]+/

        p = Pattern.compile("\\.([a-zA-Z0-9- _]+)");
        text = req.getParameter("dompath2");
        List<String> classArray = getMatches(p, text, 1);

        //          System.out.println (classArray.toString());

        // logType is the type of logging information
        // where in page has user clicked? Bookmark area,...  
        logType = req.getParameter("dompath").replaceFirst("^[^#]+#", "");
        logType = logType.replaceFirst("/.*$", "");

        // if class tagcloud exists, add to type with blank inbetween
        // if class bmown set bmown-value to 1 otherwise to 0

        String abmown = "0";
        // if classArray contains class bmown, then link is users own bookmark
        if (classArray.contains("bmown")) {
            abmown = "1";
        } else {
            abmown = "0";
        }

        org.bibsonomy.logging.Log LogData = new org.bibsonomy.logging.Log();

        LogData.setAhref(req.getParameter("ahref"));
        LogData.setAcontent(req.getParameter("acontent"));
        LogData.setAnumberofposts(req.getParameter("numberofposts"));
        LogData.setDompath(req.getParameter("dompath"));
        LogData.setDompath2(req.getParameter("dompath2"));
        LogData.setType(logType);
        LogData.setPageurl(req.getParameter("pageurl"));
        LogData.setUseragent(req.getHeader("user-agent"));

        if (req.getParameter("username").isEmpty()) {
            LogData.setUsername(cookieUsername);
        } else {
            LogData.setUsername(req.getParameter("username"));
        }

        LogData.setSessionid(cookieSessionId);
        LogData.setHost(req.getHeader("host"));
        LogData.setCompleteheader(completeHeader);
        LogData.setXforwardedfor(req.getHeader("X-Forwarded-For"));
        LogData.setListpos(req.getParameter("listpos"));
        LogData.setWindowsize(req.getParameter("windowsize"));
        LogData.setMouseclientpos(req.getParameter("mouseclientpos"));
        LogData.setMousedocumentpos(req.getParameter("mousedocumentpos"));
        LogData.setAbmown(abmown);
        LogData.setReferer(req.getParameter("referer"));

        log.debug("LogData to insert:\n" + LogData.toString());
        log.info("Clicked at anchor with shown text: " + LogData.getAcontent());

        try {
            QueryDB.getInstance().insertLogdata(LogData);
            log.info("Database access: insertLogdata ok");

        } catch (SQLException e) {
            log.error("Database error: insertLogdata", e);
        }

    }
}