diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..333a029 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,34 @@ +# This file is for unifying the coding style for different editors and IDEs +# EditorConfig is awesome: http://EditorConfig.org + +root = true + +[*.java] +indent_style = space +indent_size = 3 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.{js,css}] +indent_style = tab +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.jsp] +charset = utf-8 +indent_style = space +indent_size = 3 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.json] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2261ef4..1a9d022 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,6 @@ log4js-site/build/ /log4js-servlet/nbproject/ /log4js/nbproject/private/ log4js/.cache/ +log4js-servlet/out/ +.idea/ +.gradle/ diff --git a/.travis.yml b/.travis.yml index 587e826..29dab1a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,13 +25,22 @@ before_script: script: - grunt --gruntfile "Gruntfile.js" build deploy: - provider: releases - api_key: - secure: iKdorqXgiTH3RcLLNj8Q4AoRWxpYA6yT7YDYKnuORz3tcAvHrIBmt+ff6h5zsn2JVGkFamc0njfYdrOfLdc4+cQQfQVq80OhJJnkIQ0WgOtG0yt+yVHKb8lWBGr9P0lMvvBuROsuxGl9jPcgkUTtuvxHoJ3T24WlLDGXJSWdCzw= - file_glob: true - file: target/*.zip - skip_cleanup: true - on: - repo: stritti/log4js - branch: master - tags: true + - provider: npm + email: stephan@st-strittmatter.name + api_key: + secure: NQyGsxZKqApzTxBjsXMI/2drQcCF8s38iuofEL/wbATWC9Y9ggfI6oyd/tqqyYrgouBoSqHPSOEP4ghe381yrO9jlnJMiwzmLqVivZAAe4x2DI3nrlaz+AFcvTpf/36T4LFevTP3Lh6LoVGRrKnfRCjQzfBv0hYOLtjNCc/zjeU= + file_glob: true + file: target/*.zip + skip_cleanup: true + on: + tags: true + repo: stritti/log4js + - provider: releases + api_key: + secure: iKdorqXgiTH3RcLLNj8Q4AoRWxpYA6yT7YDYKnuORz3tcAvHrIBmt+ff6h5zsn2JVGkFamc0njfYdrOfLdc4+cQQfQVq80OhJJnkIQ0WgOtG0yt+yVHKb8lWBGr9P0lMvvBuROsuxGl9jPcgkUTtuvxHoJ3T24WlLDGXJSWdCzw= + file_glob: true + file: target/*.zip + skip_cleanup: true + on: + repo: stritti/log4js + tags: true \ No newline at end of file diff --git a/CHANGELOG.txt b/CHANGELOG.txt deleted file mode 100644 index 827fd52..0000000 --- a/CHANGELOG.txt +++ /dev/null @@ -1 +0,0 @@ -Moved to status.xml \ No newline at end of file diff --git a/INSTALL.txt b/INSTALL.txt deleted file mode 100644 index 0bd53c4..0000000 --- a/INSTALL.txt +++ /dev/null @@ -1,52 +0,0 @@ - -============ -Using log4js -============ - -1) First untar or unzip the distribution file. - -2) Assuming you chose to extract the distribution in to the - PATH_OF_YOUR_CHOICE, untarring the distribution file should create - a logging-log4js-VERSION directory, where VERSION is the log4js - version number, under PATH_OF_YOUR_CHOICE. We will refer to the - directory PATH_OF_YOUR_CHOICE/log4js-VERSION/ as $LOG4JS_HOME/. - -@TODO - -================== -log4js dependencies -================== - -Log4js is based on EMCA Script (JavaScript) with the following additional -requirements: - - ---------------------------- - JSDoc - ---------------------------- - - JSDoc is a Perl implementation to generate API documentation for JavaScripts. - It is available at http://jsdoc.sf.net - - ---------------------------- - Package ANT - ---------------------------- - - ANT is a Java based make tool to generate the releases. It is availabel - at http://ant.apache.org - - ---------------------------- - Package log4j.jar - ---------------------------- - - log4j.jar is the logging API for Java. It is only required for the - AJAXAppender example to log the messages on server side. - - -=============== -Building log4js -=============== - -Like most java appilicatios today, log4js relies on ANT as its build -tool. ANT is availale from "http://ant.apache.org/". ANT -requires a build file called build.xml which is part of this -distribution. \ No newline at end of file diff --git a/NOTICE.txt b/NOTICE.txt deleted file mode 100644 index 35fb908..0000000 --- a/NOTICE.txt +++ /dev/null @@ -1,4 +0,0 @@ -This product includes software developed by -The Apache Software Foundation (http://www.apache.org/). - -This product includes source code based on ... diff --git a/README.md b/README.md index bc93290..e6082e8 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Log4js ====== -Log4js - The Logging Framework for JavaScript +Log4js - The Logging Framework for JavaScript with no runtime dependencies ## Usage @@ -33,6 +33,21 @@ consoleLog.trace('I was traced!') Within sources there is a more detailed [example](log4js/src/main/example/index.html). ## Development + +The project is seperated in modules. Core JavaScript module is located in subdirectory `log4js` + +### Structure +```` +├───log4js: Main JavaScript Log4js module +├───log4js-servlet: Java Servlet to collect AJAX-Logs serverside +├───log4js-solr: configuration to collect logs using Apache SOLR +├───log4js-site: (outdated) project documentation + +```` + +### Log4js +> Main JavaScript module + To build the JavaScript library we use [npm](https://www.npmjs.com/) and [grunt](https://gruntjs.com/). ```` @@ -45,9 +60,19 @@ Include then the `target/log4js.min.js` file in your project. More details in the [Wiki](https://github.com/stritti/log4js/wiki/Development) +### Log4js Servlet + +The servlet is Java based project which is compiled using `maven`. + +### Log4js SOLR + +For more details see [README.md](log4js-solr/README.md) in the subdirectory [log4js-solr](log4js-solr) + +### Log4js Site + ## Contribution -Pull Requests are very welcome. +[Pull Requests](https://github.com/stritti/log4js/pulls) are very welcome. ## Other JavaScript Logger There are a lot other projects which are started logging in JavaScript: diff --git a/build.properties b/build.properties deleted file mode 100644 index f986212..0000000 --- a/build.properties +++ /dev/null @@ -1,10 +0,0 @@ -tools.commons-logging.version=1.1 -tools.jsdoc.version=1.10.2 -tools.jsl.version=0.3.0 -tools.jstester.version=1.3-jdk15 -tools.jsunit.version=2_1 -tools.junit.version=4.3 -tools.log4j.version=1.2.13 -tools.rhino.version=1.6R3 -tools.servlet-api.version=2.4 -version=1.0 diff --git a/build.xml b/build.xml deleted file mode 100644 index d4c4c9f..0000000 --- a/build.xml +++ /dev/null @@ -1,392 +0,0 @@ - - - - - - ANT build file for Log4js, the logging library for JavaScript which is - using almost same API than log4j. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - generate complete distribution archives: ${release.dir}/log4js-${version}.zip - - - - - - - - - - - - - - - - - - - - - - - Copy users guide to archive... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Generate example web archive: ${dist.dir}/${example.war.name} - - - - - - - - - - - - - - - - - - - - - - Generate documentation archive: ${dist.dir}/log4js-doc-${version}.zip - - - - - - - - - - - - - - - - - - - - - - - - Warning!!! This task is renamed into jshint for new library is used - - - - - - - - - - - - - - - - - - - - - - - To use this Maven-like freedom with respect to dependency setup, - do the following: - - - run ant as you normally would, but add the following target to the command - line: - - download-dependencies - - For example: - C:>myproject\ant download-dependencies dist - - - - - - - - - - - - - - - - - - - - - Copy robots.txt into the site... - - - - - - - Copy api-doc into the site... - - - - - - - Copy example into the site... - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/log4js-servlet/build.gradle b/log4js-servlet/build.gradle new file mode 100644 index 0000000..9f4af7d --- /dev/null +++ b/log4js-servlet/build.gradle @@ -0,0 +1,33 @@ + + +apply plugin: 'java' +apply plugin: 'war' +apply plugin: 'jacoco' +apply plugin: 'eclipse' +apply plugin: 'idea' + +group = 'de.log4js' +version = '2.0.0Beta1' +sourceCompatibility = 1.8 + +repositories { + mavenCentral() +} + + +dependencies { + + compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25' + compile group: 'commons-io', name: 'commons-io', version: '2.6' + compile group: 'com.google.code.gson', name: 'gson', version: '2.7' + compile group: 'javax.servlet', name: 'servlet-api', version: '2.5' + compile group: 'javax.servlet.jsp', name: 'jsp-api', version: '2.1' + + testCompile group: 'junit', name: 'junit', version: '4.12' + +} + +compileJava { + options.encoding = 'UTF-8' + options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" +} diff --git a/log4js-servlet/build.properties b/log4js-servlet/build.properties deleted file mode 100644 index 25995fa..0000000 --- a/log4js-servlet/build.properties +++ /dev/null @@ -1,12 +0,0 @@ -#Created by JInto - www.guh-software.de -#Sat Aug 11 14:48:33 CEST 2007 -tools.commons-beanutils.version=1.7.0 -tools.commons-collections.version=3.2 -tools.commons-lang.version=2.3 -tools.commons-logging.version=1.1 -tools.ezmorph.version=1.0.2 -tools.json-lib.version=2.0-jdk15 -tools.junit.version=4.3 -tools.log4j.version=1.2.13 -tools.servlet-api.version=2.4 -version=1.0-RC1 diff --git a/log4js-servlet/build.xml b/log4js-servlet/build.xml deleted file mode 100644 index c30104c..0000000 --- a/log4js-servlet/build.xml +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - ANT build file for Log4js-servlet. - Log4js-servlet is the servlet to store clients loggs on server. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - generate distribution archives - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - To use this Maven-like freedom with respect to dependency setup, - do the following: - - - run ant as you normally would, but add the following target to the command - line: - - download-dependencies - - For example: - C:>myproject\ant download-dependencies dist - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/log4js-servlet/gradle/wrapper/gradle-wrapper.jar b/log4js-servlet/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..1ce6e58 Binary files /dev/null and b/log4js-servlet/gradle/wrapper/gradle-wrapper.jar differ diff --git a/log4js-servlet/gradle/wrapper/gradle-wrapper.properties b/log4js-servlet/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..1c55f4b --- /dev/null +++ b/log4js-servlet/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Sep 24 15:52:08 CEST 2018 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-all.zip diff --git a/log4js-servlet/gradlew b/log4js-servlet/gradlew new file mode 100644 index 0000000..4453cce --- /dev/null +++ b/log4js-servlet/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save ( ) { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/log4js-servlet/gradlew.bat b/log4js-servlet/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/log4js-servlet/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/log4js-servlet/pom.xml b/log4js-servlet/pom.xml deleted file mode 100644 index a428a87..0000000 --- a/log4js-servlet/pom.xml +++ /dev/null @@ -1,156 +0,0 @@ - - - 4.0.0 - de.log4js - log4js - Log4js - war - 2.0.0Beta1 - - https://github.com/stritti/log4js.git - https://github.com/stritti/log4js - - - 1.7 - UTF-8 - src/main/resources/sybit-checkstyle.xml - - - - - - javax.servlet - servlet-api - 2.5 - provided - - - javax.servlet.jsp - jsp-api - 2.1 - provided - - - log4j - log4j - 1.2.17 - - - - - junit - junit - 4.12 - test - - - com.google.code.gson - gson - 2.3.1 - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 2.5.1 - - ${java-version} - ${java-version} - -Xlint:all - true - true - ${project.build.sourceEncoding} - - - - org.codehaus.mojo - exec-maven-plugin - 1.2.1 - - org.test.int1.Main - - - - org.apache.maven.plugins - maven-resources-plugin - 2.4.3 - - ${project.build.sourceEncoding} - - - - org.jacoco - jacoco-maven-plugin - 0.7.2.201409121644 - - - - CLASS - - *Test - - - - - - - default-prepare-agent - - prepare-agent - - - - default-report - prepare-package - - report - - - - default-check - - check - - - - - - - - - - - org.codehaus.mojo - findbugs-maven-plugin - 3.0.0 - - true - ${project.build.directory} - - target/site - src/main/resources/findbugs-excludes.xml - - - - org.apache.maven.plugins - maven-checkstyle-plugin - 2.15 - - false - ${checkstyle.config.location} - - - - - checkstyle - - - - - - - diff --git a/log4js-servlet/settings.gradle b/log4js-servlet/settings.gradle new file mode 100644 index 0000000..8ca781a --- /dev/null +++ b/log4js-servlet/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'log4js' diff --git a/log4js-servlet/src/main/java/de/log4js/Log4jsServlet.java b/log4js-servlet/src/main/java/de/log4js/Log4jsServlet.java index 5170023..277dc08 100644 --- a/log4js-servlet/src/main/java/de/log4js/Log4jsServlet.java +++ b/log4js-servlet/src/main/java/de/log4js/Log4jsServlet.java @@ -13,23 +13,22 @@ */ package de.log4js; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import de.log4js.adapter.Adapter; +import de.log4js.parser.EventParser; +import de.log4js.parser.ParseException; +import de.log4js.parser.XmlEventParser; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; - -import de.log4js.adapter.Adapter; -import de.log4js.parser.EventParser; -import de.log4js.parser.ParseException; -import de.log4js.parser.XmlEventParser; +import java.io.IOException; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; /** * Servlet to log the Log4js events send by AJAXAppender. @@ -161,12 +160,9 @@ public String getServletInfo() { * parameters. * * @return Instance of adapter. - * @throws InstantiationException - * @throws IllegalAccessException - * @throws ClassNotFoundException */ @SuppressWarnings("unchecked") - protected Adapter getAdapter() throws InstantiationException, + private Adapter getAdapter() throws InstantiationException, IllegalAccessException, ClassNotFoundException { String a = this.getServletConfig().getInitParameter("logging.adapter"); @@ -189,11 +185,11 @@ protected Adapter getAdapter() throws InstantiationException, * @throws IllegalAccessException */ @SuppressWarnings("unchecked") - protected EventParser getParser(String contentType) + private EventParser getParser(String contentType) throws ClassNotFoundException, InstantiationException, IllegalAccessException { - String strippedContentType = contentType.split(";")[0]; + String strippedContentType = contentType.split(";")[0]; EventParser parser = this.parserList.get(strippedContentType); diff --git a/log4js-servlet/src/main/java/de/log4js/adapter/JavaLoggingAdapter.java b/log4js-servlet/src/main/java/de/log4js/adapter/JavaLoggingAdapter.java index 65e3c5e..2a2251b 100644 --- a/log4js-servlet/src/main/java/de/log4js/adapter/JavaLoggingAdapter.java +++ b/log4js-servlet/src/main/java/de/log4js/adapter/JavaLoggingAdapter.java @@ -13,11 +13,11 @@ */ package de.log4js.adapter; +import de.log4js.LoggingEvent; + import java.util.logging.Level; import java.util.logging.Logger; -import de.log4js.LoggingEvent; - /** * Adapter to log using Java logging. * diff --git a/log4js-servlet/src/main/java/de/log4js/adapter/Log4jAdapter.java b/log4js-servlet/src/main/java/de/log4js/adapter/Log4jAdapter.java index 4726f46..485f282 100644 --- a/log4js-servlet/src/main/java/de/log4js/adapter/Log4jAdapter.java +++ b/log4js-servlet/src/main/java/de/log4js/adapter/Log4jAdapter.java @@ -26,10 +26,11 @@ */ package de.log4js.adapter; -import org.apache.log4j.Level; -import org.apache.log4j.Logger; import de.log4js.LoggingEvent; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Adapter to log using Apache Log4j logging. @@ -42,13 +43,13 @@ public class Log4jAdapter implements Adapter { private Logger logger; /** - * @see de.berlios.log4js.adapter.Adapter#logEvent(de.berlios.log4js.LoggingEvent) + * @see de.log4js.adapter.Adapter#logEvent(de.log4js.LoggingEvent) */ public void logEvent(LoggingEvent loggingEvent) { String msg; - this.logger = Logger.getLogger(loggingEvent.getCategoryName()); + this.logger = LoggerFactory.getLogger(loggingEvent.getCategoryName()); if (loggingEvent.getException() != null) { msg = loggingEvent.getMessage() + " -- EXCEPTION:\t" @@ -59,27 +60,27 @@ public void logEvent(LoggingEvent loggingEvent) { switch (loggingEvent.getLogLevel()) { case ERROR: - this.logger.log(Level.ERROR, msg); + this.logger.error( msg); break; case DEBUG: - this.logger.log(Level.DEBUG, msg); + this.logger.debug( msg); break; case FATAL: - this.logger.log(Level.FATAL, msg); + this.logger.error( msg); break; case INFO: - this.logger.log(Level.INFO, msg); + this.logger.info( msg); break; case TRACE: - this.logger.log(Level.TRACE, msg); + this.logger.trace( msg); break; case WARN: - this.logger.log(Level.WARN, msg); + this.logger.warn(msg); break; default: diff --git a/log4js-servlet/src/main/java/de/log4js/parser/EventParser.java b/log4js-servlet/src/main/java/de/log4js/parser/EventParser.java index d9185cf..9bd71b3 100644 --- a/log4js-servlet/src/main/java/de/log4js/parser/EventParser.java +++ b/log4js-servlet/src/main/java/de/log4js/parser/EventParser.java @@ -13,13 +13,11 @@ */ package de.log4js.parser; +import de.log4js.LoggingEvent; + import java.io.InputStream; import java.util.List; -import javax.xml.parsers.ParserConfigurationException; - -import de.log4js.LoggingEvent; - /** * Interface of event parser. * diff --git a/log4js-servlet/src/main/java/de/log4js/parser/JsonEventParser.java b/log4js-servlet/src/main/java/de/log4js/parser/JsonEventParser.java index 252bbf3..44d783f 100644 --- a/log4js-servlet/src/main/java/de/log4js/parser/JsonEventParser.java +++ b/log4js-servlet/src/main/java/de/log4js/parser/JsonEventParser.java @@ -13,17 +13,15 @@ */ package de.log4js.parser; +import com.google.gson.Gson; +import com.google.gson.JsonObject; +import de.log4js.LoggingEvent; + import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; -import de.log4js.LogLevel; -import de.log4js.LoggingEvent; - /** * Parser to parse JSON of log4js events. * @@ -34,38 +32,23 @@ */ public class JsonEventParser implements EventParser { + private Gson gson = new Gson(); + /** - * @see de.berlios.log4js.parser.EventParser#parse(java.lang.String) + * @see de.log4js.parser.EventParser#parse(java.lang.String) */ @SuppressWarnings("unchecked") public List parse(String input) throws ParseException { List eventList = new ArrayList(); - JSONObject json = JSONObject.fromObject(input); - JSONArray root = (JSONArray) json.get("Log4js"); - Iterator eventIterator = root.iterator(); - - while (eventIterator.hasNext()) { - JSONObject elem = (JSONObject) (eventIterator.next()) - .get("LoggingEvent"); - LoggingEvent event = new LoggingEvent(); - event.setCategoryName(elem.getString("logger")); - event.setException(elem.getString("exception")); - event.setLogLevel(LogLevel.valueOf(elem.getString("level"))); - event.setMessage(elem.getString("message")); - event.setReferer(elem.getString("referer")); - event.setUserAgent(elem.getString("useragent")); - event.setTimestamp(elem.getString("timestamp")); + LoggingEvent json = gson.fromJson(input, LoggingEvent.class); - eventList.add(event); - - } return eventList; } /** - * @see de.berlios.log4js.parser.EventParser#parse(java.io.InputStream) + * @see de.log4js.parser.EventParser#parse(java.io.InputStream) */ public List parse(InputStream is) throws ParseException { @@ -96,12 +79,12 @@ public String getResponseHeader() { public String getResponse(String state, String message, Throwable throwable) { - JSONObject json = new JSONObject(); - json.put("state", state); - json.put("response", message); + JsonObject json = new JsonObject(); + json.addProperty("state", state); + json.addProperty("response", message); if(throwable != null) { - json.put("stacktrace", throwable.getStackTrace()); + json.addProperty("stacktrace", "" + throwable.getStackTrace()); } return json.toString(); } diff --git a/log4js-servlet/src/main/java/de/log4js/parser/XmlEventParser.java b/log4js-servlet/src/main/java/de/log4js/parser/XmlEventParser.java index 1373ee6..5091c27 100644 --- a/log4js-servlet/src/main/java/de/log4js/parser/XmlEventParser.java +++ b/log4js-servlet/src/main/java/de/log4js/parser/XmlEventParser.java @@ -13,47 +13,47 @@ */ package de.log4js.parser; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - +import de.log4js.LogLevel; +import de.log4js.LoggingEvent; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; -import de.log4js.LogLevel; -import de.log4js.LoggingEvent; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; /** * Parser to parse XML of log4js events. * * @author Stephan Strittmatter - * @created 02.08.2007 - * - * @history 02.08.2007 Stephan Strittmatter created + * @since 02.08.2007 + * */ public class XmlEventParser implements EventParser { /** - * @see de.berlios.log4js.parser.EventParser#parse(java.lang.String) + * @see de.log4js.parser.EventParser#parse(java.lang.String) */ public List parse(String xml) throws ParseException { + if(xml == null) { + throw new IllegalArgumentException("xml was null"); + } InputStream is = new ByteArrayInputStream(xml.getBytes()); return parse(is); } /** - * @see de.berlios.log4js.parser.EventParser#parse(java.io.InputStream) + * @see de.log4js.parser.EventParser#parse(java.io.InputStream) */ public List parse(InputStream is) throws ParseException { diff --git a/log4js-servlet/src/main/webapp/WEB-INF/web.xml b/log4js-servlet/src/main/webapp/WEB-INF/web.xml index 5d1f18d..b125d87 100644 --- a/log4js-servlet/src/main/webapp/WEB-INF/web.xml +++ b/log4js-servlet/src/main/webapp/WEB-INF/web.xml @@ -26,7 +26,7 @@ Log4js Servlet - de.berlios.log4js.Log4jsServlet + de.log4js.Log4jsServlet @@ -36,19 +36,19 @@ de.berlios.log4js.adapter.Log4jAdapter logging.adapter - de.berlios.log4js.adapter.Log4jAdapter + de.log4js.adapter.Log4jAdapter Parser implementation for XML data. parser.text/xml - de.berlios.log4js.parser.XmlEventParser + de.log4js.parser.XmlEventParser Parser implementation for JSON data. parser.text/json - de.berlios.log4js.parser.JsonEventParser + de.log4js.parser.JsonEventParser diff --git a/log4js-servlet/src/test/java/de/log4js/Log4jsServletTest.java b/log4js-servlet/src/test/java/de/log4js/Log4jsServletTest.java index 3bf8c10..3c1e325 100644 --- a/log4js-servlet/src/test/java/de/log4js/Log4jsServletTest.java +++ b/log4js-servlet/src/test/java/de/log4js/Log4jsServletTest.java @@ -13,19 +13,14 @@ */ package de.log4js; -import java.io.IOException; - -import javax.servlet.ServletException; - -import junit.framework.TestCase; - import org.junit.After; import org.junit.Before; import org.junit.Test; -import de.log4js.Log4jsServlet; +import javax.servlet.ServletException; +import java.io.IOException; -public class Log4jsServletTest extends TestCase { +public class Log4jsServletTest { Log4jsServlet servlet; diff --git a/log4js-servlet/src/test/java/de/log4js/adapter/JavaLoggingAdapterTest.java b/log4js-servlet/src/test/java/de/log4js/adapter/JavaLoggingAdapterTest.java index 6bfbeac..1addac0 100644 --- a/log4js-servlet/src/test/java/de/log4js/adapter/JavaLoggingAdapterTest.java +++ b/log4js-servlet/src/test/java/de/log4js/adapter/JavaLoggingAdapterTest.java @@ -13,10 +13,10 @@ */ package de.log4js.adapter; -import static org.junit.Assert.*; - import org.junit.Test; +import static org.junit.Assert.fail; + public class JavaLoggingAdapterTest { @Test diff --git a/log4js-servlet/src/test/java/de/log4js/adapter/Log4jAdapterTest.java b/log4js-servlet/src/test/java/de/log4js/adapter/Log4jAdapterTest.java index 7bf1263..273449a 100644 --- a/log4js-servlet/src/test/java/de/log4js/adapter/Log4jAdapterTest.java +++ b/log4js-servlet/src/test/java/de/log4js/adapter/Log4jAdapterTest.java @@ -13,10 +13,10 @@ */ package de.log4js.adapter; -import static org.junit.Assert.*; - import org.junit.Test; +import static org.junit.Assert.fail; + public class Log4jAdapterTest { @Test diff --git a/log4js-servlet/src/test/java/de/log4js/parser/JsonEventParserTest.java b/log4js-servlet/src/test/java/de/log4js/parser/JsonEventParserTest.java index d355085..040aba1 100644 --- a/log4js-servlet/src/test/java/de/log4js/parser/JsonEventParserTest.java +++ b/log4js-servlet/src/test/java/de/log4js/parser/JsonEventParserTest.java @@ -14,13 +14,12 @@ package de.log4js.parser; -import java.util.List; - +import de.log4js.LogLevel; +import de.log4js.LoggingEvent; import org.junit.Assert; import org.junit.Test; -import de.log4js.LogLevel; -import de.log4js.LoggingEvent; +import java.util.List; public class JsonEventParserTest { diff --git a/log4js-servlet/src/test/java/de/log4js/parser/XmlEventParserTest.java b/log4js-servlet/src/test/java/de/log4js/parser/XmlEventParserTest.java index a8e2e28..c5d1b3b 100644 --- a/log4js-servlet/src/test/java/de/log4js/parser/XmlEventParserTest.java +++ b/log4js-servlet/src/test/java/de/log4js/parser/XmlEventParserTest.java @@ -13,18 +13,15 @@ */ package de.log4js.parser; -import java.util.List; - -import junit.framework.TestCase; - -import org.junit.Assert; -import org.junit.Test; - import de.log4js.LogLevel; import de.log4js.LoggingEvent; import de.log4js.TestUtil; +import org.junit.Assert; +import org.junit.Test; + +import java.util.List; -public class XmlEventParserTest extends TestCase { +public class XmlEventParserTest { @Test diff --git a/log4js/.babelrc b/log4js/.babelrc new file mode 100644 index 0000000..f9f2a02 --- /dev/null +++ b/log4js/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": [ "es2015" ] +} \ No newline at end of file diff --git a/log4js/.eslintrc b/log4js/.eslintrc new file mode 100644 index 0000000..3dc2293 --- /dev/null +++ b/log4js/.eslintrc @@ -0,0 +1,8 @@ +{ + "extends": "airbnb", + "rules": { + "id-length": [2, { + "exceptions": ["_"] + }] + } +} \ No newline at end of file diff --git a/log4js/package.json b/log4js/package.json index a84317a..f56dd4b 100644 --- a/log4js/package.json +++ b/log4js/package.json @@ -7,6 +7,11 @@ "authors": [ "stritti (https://github.com/stritti)" ], + "scripts": { + "watch": "grunt watch", + "build": "grunt build", + "test": "grunt test" + }, "repository": { "type": "git", "url": "https://github.com/stritti/log4js.git" @@ -20,6 +25,9 @@ ], "license": "Apache-2.0", "homepage": "http://stritti.github.io/log4js/", + "bugs": { + "url": "https://github.com/stritti/log4js/issues" + }, "ignore": [ "**/.*", "node_modules", diff --git a/log4js/src/main/js/appender.js b/log4js/src/main/js/appender.js index b51e92d..6a24e8f 100644 --- a/log4js/src/main/js/appender.js +++ b/log4js/src/main/js/appender.js @@ -5,7 +5,6 @@ * It is doing nothing. * * @constructor - * @param {Log4js.Logger} logger log4js instance this appender is attached to * @author Stephan Strittmatter */ Log4js.Appender = function () { @@ -41,7 +40,7 @@ Log4js.Appender.prototype = { }, /** * Set reference to the logger. - * @param {Log4js.Logger} the invoking logger + * @param {Log4js.Logger} logger The invoking logger */ setLogger: function(logger){ // add listener to the logger methods diff --git a/nbproject/project.properties b/nbproject/project.properties deleted file mode 100644 index 024c098..0000000 --- a/nbproject/project.properties +++ /dev/null @@ -1,7 +0,0 @@ -include.path=${php.global.include.path} -php.version=PHP_53 -source.encoding=UTF-8 -src.dir=. -tags.asp=false -tags.short=false -web.root=. diff --git a/nbproject/project.xml b/nbproject/project.xml deleted file mode 100644 index f3cc8ff..0000000 --- a/nbproject/project.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - org.netbeans.modules.php.project - - - Log4js - - -