1111import java .security .ProtectionDomain ;
1212import java .util .HashMap ;
1313import java .util .Map ;
14- import java .util .Properties ;
1514
16- import org .apache .log4j .PropertyConfigurator ;
1715import org .eclipse .jetty .server .Server ;
1816import org .eclipse .jetty .util .StringUtil ;
1917import org .eclipse .jetty .webapp .WebAppContext ;
@@ -57,8 +55,6 @@ public static void main(String[] args) throws Exception {
5755 getOrCreateEnv (PREFIX + "host" , null );
5856 String logPath = getOrCreateEnv (PREFIX + "log" , "log/jcoder.log" );
5957
60- createLog4jConfig (logPath );
61-
6258 String home = getOrCreateEnv (PREFIX + "home" , new File (System .getProperty ("user.home" ), ".jcoder" ).getAbsolutePath ());
6359 int port = Integer .parseInt (getOrCreateEnv (PREFIX + "port" , "8080" ));
6460
@@ -71,7 +67,7 @@ public static void main(String[] args) throws Exception {
7167
7268 File jcoderHome = new File (home );
7369
74- makeFiles (jcoderHome );
70+ makeFiles (jcoderHome , logPath );
7571
7672 context .setTempDirectory (new File (jcoderHome , "tmp" ));
7773 context .setContextPath ("/" );
@@ -102,20 +98,26 @@ public static void main(String[] args) throws Exception {
10298 * config log4j setting
10399 *
104100 * @param logPath
101+ * @throws IOException
102+ * @throws FileNotFoundException
105103 */
106- private static void createLog4jConfig (String logPath ) {
107- Properties pro = new Properties ();
108- pro .put ("log4j.rootLogger" , "info, stdout,R" );
109- pro .put ("log4j.appender.stdout" , "org.apache.log4j.ConsoleAppender" );
110- pro .put ("log4j.appender.stdout.layout" , "org.apache.log4j.PatternLayout " );
111- pro .put ("log4j.appender.stdout.layout.ConversionPattern" , "%c-%-4r %-5p [%d{yyyy-MM-dd HH:mm:ss}] %m%n" );
112- pro .put ("log4j.appender.R" , "org.apache.log4j.DailyRollingFileAppender" );
113- pro .put ("log4j.appender.R.File" , logPath );
114- pro .put ("log4j.appender.R.DatePattern " , " '.'yyyy-MM-dd" );
115- pro .put ("log4j.appender.R.layout" , "org.apache.log4j.PatternLayout" );
116- pro .put ("log4j.appender.R.layout.ConversionPattern" , "%d{HH:mm:ss} %c{1} %-5p %m%n" );
117- pro .put ("log4j.logger.org.atmosphere.cpr.AsynchronousProcessor" , "FATAL" );
118- PropertyConfigurator .configure (pro );
104+ private static void createLog4jConfig (File log4jFile , String logPath ) throws FileNotFoundException , IOException {
105+
106+ StringBuilder sb = new StringBuilder ();
107+
108+ sb .append (
109+ "log4j.rootLogger=info, stdout,R\n " + "log4j.appender.stdout=org.apache.log4j.ConsoleAppender\n " + "log4j.appender.stdout.layout=org.apache.log4j.PatternLayout \n "
110+ + "log4j.appender.stdout.layout.ConversionPattern=%c-%-4r %-5p [%d{yyyy-MM-dd HH:mm:ss}] %m%n\n " + "\n "
111+ + "log4j.appender.R=org.apache.log4j.DailyRollingFileAppender\n " + "log4j.appender.R.File=" );
112+
113+ sb .append (logPath );
114+
115+ sb .append ("\n " + "log4j.appender.R.DatePattern = '.'yyyy-MM-dd\n " + "log4j.appender.R.layout=org.apache.log4j.PatternLayout\n "
116+ + "log4j.appender.R.layout.ConversionPattern=%d{HH:mm:ss} %c{1} %-5p %m%n\n " + "\n " + "## Disable other log \n "
117+ + "log4j.logger.org.atmosphere.cpr.AsynchronousProcessor=FATAL" );
118+
119+ wirteFile (log4jFile .getAbsolutePath (), "utf-8" , sb .toString ());
120+
119121 }
120122
121123 private static void parseFile (String file ) throws UnsupportedEncodingException , FileNotFoundException , IOException {
@@ -150,7 +152,7 @@ private static void parseFile(String file) throws UnsupportedEncodingException,
150152 }
151153 }
152154
153- private static void makeFiles (File JcoderHome ) throws FileNotFoundException , IOException {
155+ private static void makeFiles (File JcoderHome , String logPath ) throws FileNotFoundException , IOException {
154156 File libDir = new File (JcoderHome , "lib" ); // create jar dir
155157 if (!libDir .exists ()) {
156158 libDir .mkdirs ();
@@ -178,6 +180,8 @@ private static void makeFiles(File JcoderHome) throws FileNotFoundException, IOE
178180 if (!resourceDir .exists ()) {
179181 resourceDir .mkdirs ();
180182 }
183+
184+ createLog4jConfig (new File (resourceDir , "log4j.properties" ), logPath );
181185 }
182186
183187 private static String getOrCreateEnv (String key , String def ) {
0 commit comments