0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69 ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 6c 6f 67 34 6a pt..$uname log4j
0020: 73 0d 0a 24 64 6e 61 6d 65 20 4c 69 62 72 61 72 s..$dname Librar
0030: 79 20 74 6f 20 6c 6f 67 20 69 6e 20 4a 61 76 61 y to log in Java
0040: 53 63 72 69 70 74 20 0d 0a 24 61 64 64 69 6e 20 Script ..$addin
0050: 73 74 64 6c 69 62 0d 0a 24 61 64 64 69 6e 20 67 stdlib..$addin g
0060: 6c 6f 62 61 6c 0d 0a 0d 0a 2f 2a 0d 0a 2a 20 4c lobal..../*..* L
0070: 69 63 65 6e 73 65 64 20 75 6e 64 65 72 20 74 68 icensed under th
0080: 65 20 41 70 61 63 68 65 20 4c 69 63 65 6e 73 65 e Apache License
0090: 2c 20 56 65 72 73 69 6f 6e 20 32 2e 30 20 28 74 , Version 2.0 (t
00a0: 68 65 20 22 4c 69 63 65 6e 73 65 22 29 3b 0d 0a he "License");..
00b0: 2a 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 75 73 * you may not us
00c0: 65 20 74 68 69 73 20 66 69 6c 65 20 65 78 63 65 e this file exce
00d0: 70 74 20 69 6e 20 63 6f 6d 70 6c 69 61 6e 63 65 pt in compliance
00e0: 20 77 69 74 68 20 74 68 65 20 4c 69 63 65 6e 73 with the Licens
00f0: 65 2e 0d 0a 2a 20 59 6f 75 20 6d 61 79 20 6f 62 e...* You may ob
0100: 74 61 69 6e 20 61 20 63 6f 70 79 20 6f 66 20 74 tain a copy of t
0110: 68 65 20 4c 69 63 65 6e 73 65 20 61 74 0d 0a 2a he License at..*
0120: 0d 0a 2a 20 20 20 20 20 20 68 74 74 70 3a 2f 2f ..* http://
0130: 77 77 77 2e 61 70 61 63 68 65 2e 6f 72 67 2f 6c www.apache.org/l
0140: 69 63 65 6e 73 65 73 2f 4c 49 43 45 4e 53 45 2d icenses/LICENSE-
0150: 32 2e 30 0d 0a 2a 0d 0a 2a 20 55 6e 6c 65 73 73 2.0..*..* Unless
0160: 20 72 65 71 75 69 72 65 64 20 62 79 20 61 70 70 required by app
0170: 6c 69 63 61 62 6c 65 20 6c 61 77 20 6f 72 20 61 licable law or a
0180: 67 72 65 65 64 20 74 6f 20 69 6e 20 77 72 69 74 greed to in writ
0190: 69 6e 67 2c 20 73 6f 66 74 77 61 72 65 0d 0a 2a ing, software..*
01a0: 20 64 69 73 74 72 69 62 75 74 65 64 20 75 6e 64 distributed und
01b0: 65 72 20 74 68 65 20 4c 69 63 65 6e 73 65 20 69 er the License i
01c0: 73 20 64 69 73 74 72 69 62 75 74 65 64 20 6f 6e s distributed on
01d0: 20 61 6e 20 22 41 53 20 49 53 22 20 42 41 53 49 an "AS IS" BASI
01e0: 53 2c 0d 0a 2a 20 57 49 54 48 4f 55 54 20 57 41 S,..* WITHOUT WA
01f0: 52 52 41 4e 54 49 45 53 20 4f 52 20 43 4f 4e 44 RRANTIES OR COND
0200: 49 54 49 4f 4e 53 20 4f 46 20 41 4e 59 20 4b 49 ITIONS OF ANY KI
0210: 4e 44 2c 20 65 69 74 68 65 72 20 65 78 70 72 65 ND, either expre
0220: 73 73 20 6f 72 20 69 6d 70 6c 69 65 64 2e 0d 0a ss or implied...
0230: 2a 20 53 65 65 20 74 68 65 20 4c 69 63 65 6e 73 * See the Licens
0240: 65 20 66 6f 72 20 74 68 65 20 73 70 65 63 69 66 e for the specif
0250: 69 63 20 6c 61 6e 67 75 61 67 65 20 67 6f 76 65 ic language gove
0260: 72 6e 69 6e 67 20 70 65 72 6d 69 73 73 69 6f 6e rning permission
0270: 73 20 61 6e 64 0d 0a 2a 20 6c 69 6d 69 74 61 74 s and..* limitat
0280: 69 6f 6e 73 20 75 6e 64 65 72 20 74 68 65 20 4c ions under the L
0290: 69 63 65 6e 73 65 2e 0d 0a 2a 2f 0d 0a 0d 0a 2f icense...*/..../
02a0: 2a 6a 73 6c 3a 6f 70 74 69 6f 6e 20 65 78 70 6c *jsl:option expl
02b0: 69 63 69 74 2a 2f 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a icit*/..../**..*
02c0: 20 40 66 69 6c 65 6f 76 65 72 76 69 65 77 20 6c @fileoverview l
02d0: 6f 67 34 6a 73 20 69 73 20 61 20 6c 69 62 72 61 og4js is a libra
02e0: 72 79 20 74 6f 20 6c 6f 67 20 69 6e 20 4a 61 76 ry to log in Jav
02f0: 61 53 63 72 69 70 74 20 69 6e 20 73 69 6d 69 6c aScript in simil
0300: 61 72 20 6d 61 6e 6e 65 72 20 0d 0a 2a 20 74 68 ar manner ..* th
0310: 61 6e 20 69 6e 20 6c 6f 67 34 6a 20 66 6f 72 20 an in log4j for
0320: 4a 61 76 61 2e 20 54 68 65 20 41 50 49 20 73 68 Java. The API sh
0330: 6f 75 6c 64 20 62 65 20 6e 65 61 72 6c 79 20 74 ould be nearly t
0340: 68 65 20 73 61 6d 65 2e 0d 0a 2a 20 0d 0a 2a 20 he same...* ..*
0350: 54 68 69 73 20 66 69 6c 65 20 63 6f 6e 74 61 69 This file contai
0360: 6e 73 20 61 6c 6c 20 6c 6f 67 34 6a 73 20 63 6f ns all log4js co
0370: 64 65 20 61 6e 64 20 69 73 20 74 68 65 20 6f 6e de and is the on
0380: 6c 79 20 66 69 6c 65 20 72 65 71 75 69 72 65 64 ly file required
0390: 20 66 6f 72 20 6c 6f 67 67 69 6e 67 2e 0d 0a 2a for logging...*
03a0: 20 0d 0a 2a 20 3c 68 33 3e 45 78 61 6d 70 6c 65 ..* <h3>Example
03b0: 3a 3c 2f 68 33 3e 0d 0a 2a 20 3c 70 72 65 3e 0d :</h3>..* <pre>.
03c0: 0a 2a 20 20 76 61 72 20 6c 6f 67 20 3d 20 6e 65 .* var log = ne
03d0: 77 20 4c 6f 67 34 6a 73 2e 67 65 74 4c 6f 67 67 w Log4js.getLogg
03e0: 65 72 28 22 73 6f 6d 65 2d 63 61 74 65 67 6f 72 er("some-categor
03f0: 79 2d 6e 61 6d 65 22 29 3b 20 2f 2f 63 72 65 61 y-name"); //crea
0400: 74 65 20 6c 6f 67 67 65 72 20 69 6e 73 74 61 6e te logger instan
0410: 63 65 0d 0a 2a 20 20 6c 6f 67 2e 73 65 74 4c 65 ce..* log.setLe
0420: 76 65 6c 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c vel(Log4js.Level
0430: 2e 54 52 41 43 45 29 3b 20 2f 2f 73 65 74 20 74 .TRACE); //set t
0440: 68 65 20 4c 65 76 65 6c 0d 0a 2a 20 20 6c 6f 67 he Level..* log
0450: 2e 61 64 64 41 70 70 65 6e 64 65 72 28 6e 65 77 .addAppender(new
0460: 20 43 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 65 72 ConsoleAppender
0470: 28 6c 6f 67 2c 20 66 61 6c 73 65 29 29 3b 20 2f (log, false)); /
0480: 2f 20 63 6f 6e 73 6f 6c 65 20 74 68 61 74 20 6c / console that l
0490: 61 75 6e 63 68 65 73 20 69 6e 20 6e 65 77 20 77 aunches in new w
04a0: 69 6e 64 6f 77 0d 0a 0d 0a 2a 20 20 2f 2f 20 69 indow....* // i
04b0: 66 20 6d 75 6c 74 69 70 6c 65 20 61 70 70 65 6e f multiple appen
04c0: 64 65 72 73 20 61 72 65 20 73 65 74 20 61 6c 6c ders are set all
04d0: 20 77 69 6c 6c 20 6c 6f 67 0d 0a 2a 20 20 6c 6f will log..* lo
04e0: 67 2e 61 64 64 41 70 70 65 6e 64 65 72 28 6e 65 g.addAppender(ne
04f0: 77 20 43 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 65 w ConsoleAppende
0500: 72 28 6c 6f 67 2c 20 74 72 75 65 29 29 3b 20 2f r(log, true)); /
0510: 2f 20 63 6f 6e 73 6f 6c 65 20 74 68 61 74 20 69 / console that i
0520: 73 20 69 6e 2d 6c 69 6e 65 20 69 6e 20 74 68 65 s in-line in the
0530: 20 70 61 67 65 0d 0a 2a 20 20 6c 6f 67 2e 61 64 page..* log.ad
0540: 64 41 70 70 65 6e 64 65 72 28 6e 65 77 20 46 69 dAppender(new Fi
0550: 6c 65 41 70 70 65 6e 64 65 72 28 22 43 3a 5c 5c leAppender("C:\\
0560: 73 6f 6d 65 66 69 6c 65 2e 6c 6f 67 22 29 29 3b somefile.log"));
0570: 20 2f 2f 20 66 69 6c 65 20 61 70 70 65 6e 64 65 // file appende
0580: 72 20 6c 6f 67 73 20 74 6f 20 43 3a 5c 5c 73 6f r logs to C:\\so
0590: 6d 65 66 69 6c 65 2e 6c 6f 67 0d 0a 2a 20 0d 0a mefile.log..* ..
05a0: 2a 20 20 2e 2e 2e 0d 0a 2a 20 0d 0a 2a 20 20 2f * .....* ..* /
05b0: 2f 63 61 6c 6c 20 74 68 65 20 6c 6f 67 0d 0a 2a /call the log..*
05c0: 20 20 6c 6f 67 2e 74 72 61 63 65 28 22 74 72 61 log.trace("tra
05d0: 63 65 20 6d 65 22 20 29 3b 0d 0a 2a 20 3c 2f 70 ce me" );..* </p
05e0: 72 65 3e 0d 0a 2a 0d 0a 2a 20 40 76 65 72 73 69 re>..*..* @versi
05f0: 6f 6e 20 30 2e 33 0d 0a 2a 20 40 61 75 74 68 6f on 0.3..* @autho
0600: 72 20 53 74 65 70 68 61 6e 20 53 74 72 69 74 74 r Stephan Stritt
0610: 6d 61 74 74 65 72 20 2d 20 68 74 74 70 3a 2f 2f matter - http://
0620: 6a 72 6f 6c 6c 65 72 2e 63 6f 6d 2f 70 61 67 65 jroller.com/page
0630: 2f 73 74 72 69 74 74 69 0d 0a 2a 20 40 61 75 74 /stritti..* @aut
0640: 68 6f 72 20 53 65 74 68 20 43 68 69 73 61 6d 6f hor Seth Chisamo
0650: 72 65 20 2d 20 68 74 74 70 3a 2f 2f 77 77 77 2e re - http://www.
0660: 63 68 69 73 61 6d 6f 72 65 2e 63 6f 6d 0d 0a 2a chisamore.com..*
0670: 20 40 73 69 6e 63 65 20 32 30 30 35 2d 30 35 2d @since 2005-05-
0680: 32 30 0d 0a 2a 20 57 65 62 73 69 74 65 3a 20 68 20..* Website: h
0690: 74 74 70 3a 2f 2f 6c 6f 67 34 6a 73 2e 62 65 72 ttp://log4js.ber
06a0: 6c 69 6f 73 2e 64 65 0d 0a 2a 2f 0d 0a 76 61 72 lios.de..*/..var
06b0: 20 4c 6f 67 34 6a 73 20 3d 20 7b 0d 0a 20 20 20 Log4js = {..
06c0: 20 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 .. /** ..
06d0: 20 2a 20 43 75 72 72 65 6e 74 20 76 65 72 73 69 * Current versi
06e0: 6f 6e 20 6f 66 20 6c 6f 67 34 6a 73 2e 20 0d 0a on of log4js. ..
06f0: 20 20 20 20 2a 20 40 73 74 61 74 69 63 0d 0a 20 * @static..
0700: 20 20 20 2a 20 40 66 69 6e 61 6c 0d 0a 20 20 20 * @final..
0710: 20 2a 2f 0d 0a 20 20 20 20 76 65 72 73 69 6f 6e */.. version
0720: 3a 20 22 31 2e 30 22 2c 0d 0a 0d 0a 20 20 20 20 : "1.0",....
0730: 2f 2a 2a 20 20 0d 0a 20 20 20 20 2a 20 44 61 74 /** .. * Dat
0740: 65 20 6f 66 20 6c 6f 67 67 65 72 20 69 6e 69 74 e of logger init
0750: 69 61 6c 69 7a 65 64 2e 0d 0a 20 20 20 20 2a 20 ialized... *
0760: 40 73 74 61 74 69 63 0d 0a 20 20 20 20 2a 20 40 @static.. * @
0770: 66 69 6e 61 6c 0d 0a 20 20 20 20 2a 2f 0d 0a 20 final.. */..
0780: 20 20 20 61 70 70 6c 69 63 61 74 69 6f 6e 53 74 applicationSt
0790: 61 72 74 44 61 74 65 3a 20 6e 65 77 20 44 61 74 artDate: new Dat
07a0: 65 28 29 2c 0d 0a 20 20 20 20 20 20 20 20 0d 0a e(),.. ..
07b0: 20 20 20 20 2f 2a 2a 20 20 0d 0a 20 20 20 20 2a /** .. *
07c0: 20 48 61 73 68 74 61 62 6c 65 20 6f 66 20 6c 6f Hashtable of lo
07d0: 67 67 65 72 73 2e 0d 0a 20 20 20 20 2a 20 40 73 ggers... * @s
07e0: 74 61 74 69 63 0d 0a 20 20 20 20 2a 20 40 66 69 tatic.. * @fi
07f0: 6e 61 6c 0d 0a 20 20 20 20 2a 20 40 70 72 69 76 nal.. * @priv
0800: 61 74 65 20 20 0d 0a 20 20 20 20 2a 2f 0d 0a 20 ate .. */..
0810: 20 20 20 6c 6f 67 67 65 72 73 3a 20 7b 7d 2c 0d loggers: {},.
0820: 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a . .. /**..
0830: 20 20 20 20 2a 20 47 65 74 20 61 20 6c 6f 67 67 * Get a logg
0840: 65 72 20 69 6e 73 74 61 6e 63 65 2e 20 49 6e 73 er instance. Ins
0850: 74 61 6e 63 65 20 69 73 20 63 61 63 68 65 64 20 tance is cached
0860: 6f 6e 20 63 61 74 65 67 6f 72 79 4e 61 6d 65 20 on categoryName
0870: 6c 65 76 65 6c 2e 0d 0a 20 20 20 20 2a 20 40 70 level... * @p
0880: 61 72 61 6d 20 20 7b 53 74 72 69 6e 67 7d 20 63 aram {String} c
0890: 61 74 65 67 6f 72 79 4e 61 6d 65 20 6e 61 6d 65 ategoryName name
08a0: 20 6f 66 20 63 61 74 65 67 6f 72 79 20 74 6f 20 of category to
08b0: 6c 6f 67 20 74 6f 2e 0d 0a 20 20 20 20 2a 20 40 log to... * @
08c0: 72 65 74 75 72 6e 20 7b 4c 6f 67 67 65 72 7d 20 return {Logger}
08d0: 69 6e 73 74 61 6e 63 65 20 6f 66 20 6c 6f 67 67 instance of logg
08e0: 65 72 20 66 6f 72 20 74 68 65 20 63 61 74 65 67 er for the categ
08f0: 6f 72 79 0d 0a 20 20 20 20 2a 20 40 73 74 61 74 ory.. * @stat
0900: 69 63 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 ic.. */..
0910: 67 65 74 4c 6f 67 67 65 72 3a 20 66 75 6e 63 74 getLogger: funct
0920: 69 6f 6e 28 63 61 74 65 67 6f 72 79 4e 61 6d 65 ion(categoryName
0930: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 ) {.. ..
0940: 20 20 20 20 20 20 20 2f 2f 20 55 73 65 20 64 65 // Use de
0950: 66 61 75 6c 74 20 6c 6f 67 67 65 72 20 69 66 20 fault logger if
0960: 63 61 74 65 67 6f 72 79 4e 61 6d 65 20 69 73 20 categoryName is
0970: 6e 6f 74 20 73 70 65 63 69 66 69 65 64 20 6f 72 not specified or
0980: 20 69 6e 76 61 6c 69 64 0d 0a 20 20 20 20 20 20 invalid..
0990: 20 20 69 66 20 28 21 28 74 79 70 65 6f 66 20 63 if (!(typeof c
09a0: 61 74 65 67 6f 72 79 4e 61 6d 65 20 3d 3d 20 22 ategoryName == "
09b0: 73 74 72 69 6e 67 22 29 29 20 7b 0d 0a 20 20 20 string")) {..
09c0: 20 20 20 20 20 20 20 20 20 63 61 74 65 67 6f 72 categor
09d0: 79 4e 61 6d 65 20 3d 20 22 5b 64 65 66 61 75 6c yName = "[defaul
09e0: 74 5d 22 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d t]";.. }.
09f0: 0a 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 ... if (!
0a00: 4c 6f 67 34 6a 73 2e 6c 6f 67 67 65 72 73 5b 63 Log4js.loggers[c
0a10: 61 74 65 67 6f 72 79 4e 61 6d 65 5d 29 20 7b 0d ategoryName]) {.
0a20: 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 . //
0a30: 43 72 65 61 74 65 20 74 68 65 20 6c 6f 67 67 65 Create the logge
0a40: 72 20 66 6f 72 20 74 68 69 73 20 6e 61 6d 65 20 r for this name
0a50: 69 66 20 69 74 20 64 6f 65 73 6e 27 74 20 61 6c if it doesn't al
0a60: 72 65 61 64 79 20 65 78 69 73 74 0d 0a 20 20 20 ready exist..
0a70: 20 20 20 20 20 20 20 20 20 4c 6f 67 34 6a 73 2e Log4js.
0a80: 6c 6f 67 67 65 72 73 5b 63 61 74 65 67 6f 72 79 loggers[category
0a90: 4e 61 6d 65 5d 20 3d 20 6e 65 77 20 4c 6f 67 34 Name] = new Log4
0aa0: 6a 73 2e 4c 6f 67 67 65 72 28 63 61 74 65 67 6f js.Logger(catego
0ab0: 72 79 4e 61 6d 65 29 3b 0d 0a 20 20 20 20 20 20 ryName);..
0ac0: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 }.. ..
0ad0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 4c 6f return Lo
0ae0: 67 34 6a 73 2e 6c 6f 67 67 65 72 73 5b 63 61 74 g4js.loggers[cat
0af0: 65 67 6f 72 79 4e 61 6d 65 5d 3b 0d 0a 20 20 20 egoryName];..
0b00: 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f },.. .. /
0b10: 2a 2a 0d 0a 20 20 20 20 2a 20 47 65 74 20 74 68 **.. * Get th
0b20: 65 20 64 65 66 61 75 6c 74 20 6c 6f 67 67 65 72 e default logger
0b30: 20 69 6e 73 74 61 6e 63 65 2e 0d 0a 20 20 20 20 instance...
0b40: 2a 20 40 72 65 74 75 72 6e 20 7b 4c 6f 67 67 65 * @return {Logge
0b50: 72 7d 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 64 r} instance of d
0b60: 65 66 61 75 6c 74 20 6c 6f 67 67 65 72 0d 0a 20 efault logger..
0b70: 20 20 20 2a 20 40 73 74 61 74 69 63 0d 0a 20 20 * @static..
0b80: 20 20 2a 2f 0d 0a 20 20 20 20 67 65 74 44 65 66 */.. getDef
0b90: 61 75 6c 74 4c 6f 67 67 65 72 3a 20 66 75 6e 63 aultLogger: func
0ba0: 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 tion() {..
0bb0: 20 20 72 65 74 75 72 6e 20 4c 6f 67 34 6a 73 2e return Log4js.
0bc0: 67 65 74 4c 6f 67 67 65 72 28 22 5b 64 65 66 61 getLogger("[defa
0bd0: 75 6c 74 5d 22 29 3b 20 0d 0a 20 20 20 20 7d 2c ult]"); .. },
0be0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a 0d .. .. /**.
0bf0: 0a 20 20 20 20 2a 20 41 74 61 74 63 68 20 61 6e . * Atatch an
0c00: 20 6f 62 73 65 72 76 65 72 20 66 75 6e 63 74 69 observer functi
0c10: 6f 6e 20 74 6f 20 61 6e 20 65 6c 65 6d 65 6e 74 on to an element
0c20: 73 20 65 76 65 6e 74 20 62 72 6f 77 73 65 72 20 s event browser
0c30: 69 6e 64 65 70 65 6e 64 65 6e 74 2e 0d 0a 20 20 independent...
0c40: 20 20 2a 20 0d 0a 20 20 20 20 2a 20 40 70 61 72 * .. * @par
0c50: 61 6d 20 65 6c 65 6d 65 6e 74 20 65 6c 65 6d 65 am element eleme
0c60: 6e 74 20 74 6f 20 61 74 74 61 63 68 20 65 76 65 nt to attach eve
0c70: 6e 74 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 6d nt.. * @param
0c80: 20 6e 61 6d 65 20 6e 61 6d 65 20 6f 66 20 65 76 name name of ev
0c90: 65 6e 74 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 ent.. * @para
0ca0: 6d 20 6f 62 73 65 72 76 65 72 20 6f 62 73 65 72 m observer obser
0cb0: 76 65 72 20 6d 65 74 68 6f 64 20 74 6f 20 62 65 ver method to be
0cc0: 20 63 61 6c 6c 65 64 0d 0a 20 20 20 20 2a 20 40 called.. * @
0cd0: 70 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d private.. */.
0ce0: 0a 20 20 20 20 61 74 74 61 63 68 45 76 65 6e 74 . attachEvent
0cf0: 3a 20 66 75 6e 63 74 69 6f 6e 20 28 65 6c 65 6d : function (elem
0d00: 65 6e 74 2c 20 6e 61 6d 65 2c 20 6f 62 73 65 72 ent, name, obser
0d10: 76 65 72 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 ver) {..
0d20: 69 66 20 28 65 6c 65 6d 65 6e 74 2e 61 64 64 45 if (element.addE
0d30: 76 65 6e 74 4c 69 73 74 65 6e 65 72 29 20 7b 20 ventListener) {
0d40: 2f 2f 44 4f 4d 20 65 76 65 6e 74 20 6d 6f 64 65 //DOM event mode
0d50: 6c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 l.. e
0d60: 6c 65 6d 65 6e 74 2e 61 64 64 45 76 65 6e 74 4c lement.addEventL
0d70: 69 73 74 65 6e 65 72 28 6e 61 6d 65 2c 20 6f 62 istener(name, ob
0d80: 73 65 72 76 65 72 2c 20 66 61 6c 73 65 29 3b 0d server, false);.
0d90: 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 . } else
0da0: 69 66 20 28 65 6c 65 6d 65 6e 74 2e 61 74 74 61 if (element.atta
0db0: 63 68 45 76 65 6e 74 29 20 7b 20 2f 2f 4d 24 20 chEvent) { //M$
0dc0: 65 76 65 6e 74 20 6d 6f 64 65 6c 0d 0a 20 20 20 event model..
0dd0: 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 element
0de0: 2e 61 74 74 61 63 68 45 76 65 6e 74 28 27 6f 6e .attachEvent('on
0df0: 27 20 2b 20 6e 61 6d 65 2c 20 6f 62 73 65 72 76 ' + name, observ
0e00: 65 72 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d er);.. }.
0e10: 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 . }.. ..
0e20: 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 4c 6f 61 /**.. * Loa
0e30: 64 20 61 20 4a 53 2d 73 63 72 69 70 74 20 64 79 d a JS-script dy
0e40: 6e 61 6d 69 63 61 6c 6c 79 2e 0d 0a 20 20 20 20 namically...
0e50: 2a 20 40 70 61 72 61 6d 20 7b 53 74 72 69 6e 67 * @param {String
0e60: 7d 20 73 72 63 0d 0a 20 20 20 20 2a 2f 0d 0a 2f } src.. */../
0e70: 2a 09 24 69 6d 70 6f 72 74 3a 20 66 75 6e 63 74 *.$import: funct
0e80: 69 6f 6e 20 28 73 72 63 29 20 7b 0d 0a 20 20 20 ion (src) {..
0e90: 20 20 20 20 20 76 61 72 20 64 6f 63 75 6d 65 6e var documen
0ea0: 74 53 63 72 69 70 74 73 20 3d 20 64 6f 63 75 6d tScripts = docum
0eb0: 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 73 42 ent.getElementsB
0ec0: 79 54 61 67 4e 61 6d 65 28 22 73 63 72 69 70 74 yTagName("script
0ed0: 22 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 20 ");.. ..
0ee0: 20 20 20 66 6f 72 20 28 69 6e 64 65 78 20 3d 20 for (index =
0ef0: 30 3b 20 69 6e 64 65 78 20 3c 20 64 6f 63 75 6d 0; index < docum
0f00: 65 6e 74 53 63 72 69 70 74 73 2e 6c 65 6e 67 74 entScripts.lengt
0f10: 68 3b 20 2b 2b 69 6e 64 65 78 29 0d 0a 20 20 20 h; ++index)..
0f20: 20 20 20 20 20 7b 0d 0a 20 20 20 20 20 20 20 20 {..
0f30: 20 20 20 20 76 61 72 20 64 6f 63 75 6d 65 6e 74 var document
0f40: 53 63 72 69 70 74 20 3d 20 64 6f 63 75 6d 65 6e Script = documen
0f50: 74 53 63 72 69 70 74 73 5b 69 6e 64 65 78 5d 3b tScripts[index];
0f60: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 .. if
0f70: 20 28 64 6f 63 75 6d 65 6e 74 53 63 72 69 70 74 (documentScript
0f80: 2e 73 72 63 20 3d 3d 20 73 72 63 29 20 7b 0d 0a .src == src) {..
0f90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
0fa0: 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 return false;..
0fb0: 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 }..
0fc0: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
0fd0: 20 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 73 .. var s
0fe0: 63 72 69 70 74 20 3d 20 64 6f 63 75 6d 65 6e 74 cript = document
0ff0: 2e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 .createElement('
1000: 73 63 72 69 70 74 27 29 3b 0d 0a 20 20 20 20 20 script');..
1010: 20 20 20 73 63 72 69 70 74 2e 74 79 70 65 20 3d script.type =
1020: 20 27 74 65 78 74 2f 6a 61 76 61 73 63 72 69 70 'text/javascrip
1030: 74 27 3b 0d 0a 20 20 20 20 20 20 20 20 73 63 72 t';.. scr
1040: 69 70 74 2e 73 72 63 20 3d 20 73 72 63 3b 0d 0a ipt.src = src;..
1050: 20 20 20 20 20 20 20 20 64 6f 63 75 6d 65 6e 74 document
1060: 2e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 .getElementsByTa
1070: 67 4e 61 6d 65 28 27 68 65 61 64 27 29 5b 30 5d gName('head')[0]
1080: 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 73 63 72 .appendChild(scr
1090: 69 70 74 29 3b 20 0d 0a 20 20 20 20 20 20 20 20 ipt); ..
10a0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
10b0: 20 74 72 75 65 3b 0d 0a 20 20 20 20 7d 0d 0a 20 true;.. }..
10c0: 20 20 20 2a 2f 0d 0a 7d 3b 0d 0a 0d 0a 2f 2a 2a */..};..../**
10d0: 0d 0a 2a 20 49 6e 74 65 72 6e 61 6c 20 6f 62 6a ..* Internal obj
10e0: 65 63 74 20 65 78 74 65 6e 73 69 6f 6e 20 28 4f ect extension (O
10f0: 4f 29 20 6d 65 74 68 6f 64 73 2e 0d 0a 2a 20 0d O) methods...* .
1100: 0a 2a 20 40 70 72 69 76 61 74 65 0d 0a 2a 20 40 .* @private..* @
1110: 69 67 6e 6f 72 65 0d 0a 2a 2f 0d 0a 4c 6f 67 34 ignore..*/..Log4
1120: 6a 73 2e 65 78 74 65 6e 64 20 3d 20 66 75 6e 63 js.extend = func
1130: 74 69 6f 6e 28 64 65 73 74 69 6e 61 74 69 6f 6e tion(destination
1140: 2c 20 73 6f 75 72 63 65 29 20 7b 0d 0a 66 6f 72 , source) {..for
1150: 20 28 70 72 6f 70 65 72 74 79 20 69 6e 20 73 6f (property in so
1160: 75 72 63 65 29 20 7b 0d 0a 20 20 20 20 64 65 73 urce) {.. des
1170: 74 69 6e 61 74 69 6f 6e 5b 70 72 6f 70 65 72 74 tination[propert
1180: 79 5d 20 3d 20 73 6f 75 72 63 65 5b 70 72 6f 70 y] = source[prop
1190: 65 72 74 79 5d 3b 0d 0a 7d 0d 0a 72 65 74 75 72 erty];..}..retur
11a0: 6e 20 64 65 73 74 69 6e 61 74 69 6f 6e 3b 0d 0a n destination;..
11b0: 7d 0d 0a 20 20 20 20 0d 0a 2f 2a 2a 0d 0a 2a 20 }.. ../**..*
11c0: 46 75 6e 63 74 69 6f 6e 73 20 74 61 6b 65 6e 20 Functions taken
11d0: 66 72 6f 6d 20 50 72 6f 74 6f 74 79 70 65 20 6c from Prototype l
11e0: 69 62 72 61 72 79 2c 20 20 0d 0a 2a 20 64 69 64 ibrary, ..* did
11f0: 6e 27 74 20 77 61 6e 74 20 74 6f 20 72 65 71 75 n't want to requ
1200: 69 72 65 20 66 6f 72 20 6a 75 73 74 20 66 65 77 ire for just few
1210: 20 66 75 6e 63 74 69 6f 6e 73 2e 0d 0a 2a 20 4d functions...* M
1220: 6f 72 65 20 69 6e 66 6f 20 61 74 20 7b 40 6c 69 ore info at {@li
1230: 6e 6b 20 68 74 74 70 3a 2f 2f 70 72 6f 74 6f 74 nk http://protot
1240: 79 70 65 2e 63 6f 6e 69 6f 2e 6e 65 74 2f 7d 0d ype.conio.net/}.
1250: 0a 2a 20 40 70 72 69 76 61 74 65 0d 0a 2a 2f 09 .* @private..*/.
1260: 0d 0a 4c 6f 67 34 6a 73 2e 62 69 6e 64 20 3d 20 ..Log4js.bind =
1270: 66 75 6e 63 74 69 6f 6e 28 66 6e 2c 20 6f 62 6a function(fn, obj
1280: 65 63 74 29 20 7b 0d 0a 72 65 74 75 72 6e 20 66 ect) {..return f
1290: 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 unction() {..
12a0: 20 20 20 20 20 72 65 74 75 72 6e 20 66 6e 2e 61 return fn.a
12b0: 70 70 6c 79 28 6f 62 6a 65 63 74 2c 20 61 72 67 pply(object, arg
12c0: 75 6d 65 6e 74 73 29 3b 0d 0a 7d 3b 0d 0a 7d 3b uments);..};..};
12d0: 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a 20 4c 6f 67 34 6a ..../**..* Log4j
12e0: 73 2e 4c 65 76 65 6c 20 45 6e 75 6d 65 72 61 74 s.Level Enumerat
12f0: 69 6f 6e 2e 20 44 6f 20 6e 6f 74 20 75 73 65 20 ion. Do not use
1300: 64 69 72 65 63 74 6c 79 2e 20 55 73 65 20 73 74 directly. Use st
1310: 61 74 69 63 20 6f 62 6a 65 63 74 73 20 69 6e 73 atic objects ins
1320: 74 65 61 64 2e 0d 0a 2a 20 40 63 6f 6e 73 74 72 tead...* @constr
1330: 75 63 74 6f 72 0d 0a 2a 20 40 70 61 72 61 6d 20 uctor..* @param
1340: 7b 4e 75 6d 62 65 72 7d 20 6c 65 76 65 6c 20 6e {Number} level n
1350: 75 6d 62 65 72 20 6f 66 20 6c 65 76 65 6c 0d 0a umber of level..
1360: 2a 20 40 70 61 72 61 6d 20 7b 53 74 72 69 6e 67 * @param {String
1370: 7d 20 6c 65 76 65 6c 53 74 72 69 6e 67 20 53 74 } levelString St
1380: 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 ring representat
1390: 69 6f 6e 20 6f 66 20 6c 65 76 65 6c 0d 0a 2a 20 ion of level..*
13a0: 40 70 72 69 76 61 74 65 0d 0a 2a 2f 0d 0a 4c 6f @private..*/..Lo
13b0: 67 34 6a 73 2e 4c 65 76 65 6c 20 3d 20 66 75 6e g4js.Level = fun
13c0: 63 74 69 6f 6e 28 6c 65 76 65 6c 2c 20 6c 65 76 ction(level, lev
13d0: 65 6c 53 74 72 29 20 7b 0d 0a 20 20 20 20 74 68 elStr) {.. th
13e0: 69 73 2e 6c 65 76 65 6c 20 3d 20 6c 65 76 65 6c is.level = level
13f0: 3b 0d 0a 20 20 20 20 74 68 69 73 2e 6c 65 76 65 ;.. this.leve
1400: 6c 53 74 72 20 3d 20 6c 65 76 65 6c 53 74 72 3b lStr = levelStr;
1410: 0d 0a 7d 3b 0d 0a 0d 0a 4c 6f 67 34 6a 73 2e 4c ..};....Log4js.L
1420: 65 76 65 6c 2e 70 72 6f 74 6f 74 79 70 65 20 3d evel.prototype =
1430: 20 20 7b 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 {.. /** ..
1440: 20 20 20 2a 20 63 6f 6e 76 65 72 74 73 20 67 69 * converts gi
1450: 76 65 6e 20 53 74 72 69 6e 67 20 74 6f 20 63 6f ven String to co
1460: 72 72 65 73 70 6f 6e 64 69 6e 67 20 4c 65 76 65 rresponding Leve
1470: 6c 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 l.. * @param
1480: 7b 53 74 72 69 6e 67 7d 20 73 41 72 67 20 53 74 {String} sArg St
1490: 72 69 6e 67 20 76 61 6c 75 65 20 6f 66 20 4c 65 ring value of Le
14a0: 76 65 6c 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 vel.. * @para
14b0: 6d 20 7b 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 7d m {Log4js.Level}
14c0: 20 64 65 66 61 75 6c 74 4c 65 76 65 6c 20 64 65 defaultLevel de
14d0: 66 61 75 6c 74 20 4c 65 76 65 6c 2c 20 69 66 20 fault Level, if
14e0: 6e 6f 20 53 74 72 69 6e 67 20 72 65 70 72 65 73 no String repres
14f0: 65 6e 74 61 74 69 6f 6e 0d 0a 20 20 20 20 2a 20 entation.. *
1500: 40 72 65 74 75 72 6e 20 4c 65 76 65 6c 20 6f 62 @return Level ob
1510: 6a 65 63 74 0d 0a 20 20 20 20 2a 20 40 74 79 70 ject.. * @typ
1520: 65 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 0d 0a e Log4js.Level..
1530: 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 6f 4c 65 */.. toLe
1540: 76 65 6c 3a 20 66 75 6e 63 74 69 6f 6e 28 73 41 vel: function(sA
1550: 72 67 2c 20 64 65 66 61 75 6c 74 4c 65 76 65 6c rg, defaultLevel
1560: 29 20 7b 20 20 20 20 20 20 20 20 20 20 20 20 20 ) {
1570: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 ..
1580: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ..
1590: 20 69 66 28 73 41 72 67 20 3d 3d 3d 20 6e 75 6c if(sArg === nul
15a0: 6c 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 l) {..
15b0: 20 20 72 65 74 75 72 6e 20 64 65 66 61 75 6c 74 return default
15c0: 4c 65 76 65 6c 3b 0d 0a 20 20 20 20 20 20 20 20 Level;..
15d0: 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 }.. ..
15e0: 20 20 20 20 20 69 66 28 74 79 70 65 6f 66 20 73 if(typeof s
15f0: 41 72 67 20 3d 3d 20 22 73 74 72 69 6e 67 22 29 Arg == "string")
1600: 20 7b 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 { ..
1610: 20 76 61 72 20 73 20 3d 20 73 41 72 67 2e 74 6f var s = sArg.to
1620: 55 70 70 65 72 43 61 73 65 28 29 3b 0d 0a 20 20 UpperCase();..
1630: 20 20 20 20 20 20 20 20 20 20 69 66 28 73 20 3d if(s =
1640: 3d 20 22 41 4c 4c 22 29 20 7b 72 65 74 75 72 6e = "ALL") {return
1650: 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 41 4c Log4js.Level.AL
1660: 4c 3b 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 L;}..
1670: 20 69 66 28 73 20 3d 3d 20 22 44 45 42 55 47 22 if(s == "DEBUG"
1680: 29 20 7b 72 65 74 75 72 6e 20 4c 6f 67 34 6a 73 ) {return Log4js
1690: 2e 4c 65 76 65 6c 2e 44 45 42 55 47 3b 7d 0d 0a .Level.DEBUG;}..
16a0: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 73 if(s
16b0: 20 3d 3d 20 22 49 4e 46 4f 22 29 20 7b 72 65 74 == "INFO") {ret
16c0: 75 72 6e 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c urn Log4js.Level
16d0: 2e 49 4e 46 4f 3b 7d 0d 0a 20 20 20 20 20 20 20 .INFO;}..
16e0: 20 20 20 20 20 69 66 28 73 20 3d 3d 20 22 57 41 if(s == "WA
16f0: 52 4e 22 29 20 7b 72 65 74 75 72 6e 20 4c 6f 67 RN") {return Log
1700: 34 6a 73 2e 4c 65 76 65 6c 2e 57 41 52 4e 3b 7d 4js.Level.WARN;}
1710: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 .. if
1720: 28 73 20 3d 3d 20 22 45 52 52 4f 52 22 29 20 7b (s == "ERROR") {
1730: 72 65 74 75 72 6e 20 4c 6f 67 34 6a 73 2e 4c 65 return Log4js.Le
1740: 76 65 6c 2e 45 52 52 4f 52 3b 7d 0d 0a 20 20 20 vel.ERROR;}..
1750: 20 20 20 20 20 20 20 20 20 69 66 28 73 20 3d 3d if(s ==
1760: 20 22 46 41 54 41 4c 22 29 20 7b 72 65 74 75 72 "FATAL") {retur
1770: 6e 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 46 n Log4js.Level.F
1780: 41 54 41 4c 3b 7d 0d 0a 20 20 20 20 20 20 20 20 ATAL;}..
1790: 20 20 20 20 69 66 28 73 20 3d 3d 20 22 4f 46 46 if(s == "OFF
17a0: 22 29 20 7b 72 65 74 75 72 6e 20 4c 6f 67 34 6a ") {return Log4j
17b0: 73 2e 4c 65 76 65 6c 2e 4f 46 46 3b 7d 0d 0a 20 s.Level.OFF;}..
17c0: 20 20 20 20 20 20 20 20 20 20 20 69 66 28 73 20 if(s
17d0: 3d 3d 20 22 54 52 41 43 45 22 29 20 7b 72 65 74 == "TRACE") {ret
17e0: 75 72 6e 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c urn Log4js.Level
17f0: 2e 54 52 41 43 45 3b 7d 0d 0a 20 20 20 20 20 20 .TRACE;}..
1800: 20 20 20 20 20 20 72 65 74 75 72 6e 20 64 65 66 return def
1810: 61 75 6c 74 4c 65 76 65 6c 3b 0d 0a 20 20 20 20 aultLevel;..
1820: 20 20 20 20 7d 20 65 6c 73 65 20 69 66 28 74 79 } else if(ty
1830: 70 65 6f 66 20 73 41 72 67 20 3d 3d 20 22 6e 75 peof sArg == "nu
1840: 6d 62 65 72 22 29 20 7b 0d 0a 20 20 20 20 20 20 mber") {..
1850: 20 20 20 20 20 20 73 77 69 74 63 68 28 73 41 72 switch(sAr
1860: 67 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 g) {..
1870: 20 20 20 20 20 20 63 61 73 65 20 41 4c 4c 5f 49 case ALL_I
1880: 4e 54 3a 20 72 65 74 75 72 6e 20 4c 6f 67 34 6a NT: return Log4j
1890: 73 2e 4c 65 76 65 6c 2e 41 4c 4c 3b 0d 0a 20 20 s.Level.ALL;..
18a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 ca
18b0: 73 65 20 44 45 42 55 47 5f 49 4e 54 3a 20 72 65 se DEBUG_INT: re
18c0: 74 75 72 6e 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 turn Log4js.Leve
18d0: 6c 2e 44 45 42 55 47 3b 0d 0a 20 20 20 20 20 20 l.DEBUG;..
18e0: 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 49 case I
18f0: 4e 46 4f 5f 49 4e 54 3a 20 72 65 74 75 72 6e 20 NFO_INT: return
1900: 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 49 4e 46 Log4js.Level.INF
1910: 4f 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 O;..
1920: 20 20 20 20 63 61 73 65 20 57 41 52 4e 5f 49 4e case WARN_IN
1930: 54 3a 20 72 65 74 75 72 6e 20 4c 6f 67 34 6a 73 T: return Log4js
1940: 2e 4c 65 76 65 6c 2e 57 41 52 4e 3b 0d 0a 20 20 .Level.WARN;..
1950: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 ca
1960: 73 65 20 45 52 52 4f 52 5f 49 4e 54 3a 20 72 65 se ERROR_INT: re
1970: 74 75 72 6e 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 turn Log4js.Leve
1980: 6c 2e 45 52 52 4f 52 3b 0d 0a 20 20 20 20 20 20 l.ERROR;..
1990: 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 46 case F
19a0: 41 54 41 4c 5f 49 4e 54 3a 20 72 65 74 75 72 6e ATAL_INT: return
19b0: 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 46 41 Log4js.Level.FA
19c0: 54 41 4c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 TAL;..
19d0: 20 20 20 20 20 20 63 61 73 65 20 4f 46 46 5f 49 case OFF_I
19e0: 4e 54 3a 20 72 65 74 75 72 6e 20 4c 6f 67 34 6a NT: return Log4j
19f0: 73 2e 4c 65 76 65 6c 2e 4f 46 46 3b 0d 0a 20 20 s.Level.OFF;..
1a00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 ca
1a10: 73 65 20 54 52 41 43 45 5f 49 4e 54 3a 20 72 65 se TRACE_INT: re
1a20: 74 75 72 6e 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 turn Log4js.Leve
1a30: 6c 2e 54 52 41 43 45 3b 0d 0a 20 20 20 20 20 20 l.TRACE;..
1a40: 20 20 20 20 20 20 20 20 20 20 64 65 66 61 75 6c defaul
1a50: 74 3a 20 72 65 74 75 72 6e 20 64 65 66 61 75 6c t: return defaul
1a60: 74 4c 65 76 65 6c 3b 0d 0a 20 20 20 20 20 20 20 tLevel;..
1a70: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 }..
1a80: 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 } else {..
1a90: 20 20 20 20 20 20 72 65 74 75 72 6e 20 64 65 66 return def
1aa0: 61 75 6c 74 4c 65 76 65 6c 3b 09 0d 0a 20 20 20 aultLevel;...
1ab0: 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 09 0d }.. },..
1ac0: 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a . /** .. *
1ad0: 20 40 72 65 74 75 72 6e 20 20 63 6f 6e 76 65 72 @return conver
1ae0: 74 65 64 20 4c 65 76 65 6c 20 74 6f 20 53 74 72 ted Level to Str
1af0: 69 6e 67 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 ing.. * @type
1b00: 20 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 09 String.. */.
1b10: 09 0d 0a 20 20 20 20 74 6f 53 74 72 69 6e 67 3a ... toString:
1b20: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 function() {..
1b30: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 return th
1b40: 69 73 2e 6c 65 76 65 6c 53 74 72 3b 09 0d 0a 20 is.levelStr;...
1b50: 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d },.. /** .
1b60: 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 69 . * @return i
1b70: 6e 74 65 72 6e 61 6c 20 4e 75 6d 62 65 72 20 76 nternal Number v
1b80: 61 6c 75 65 20 6f 66 20 4c 65 76 65 6c 0d 0a 20 alue of Level..
1b90: 20 20 20 2a 20 40 74 79 70 65 20 4e 75 6d 62 65 * @type Numbe
1ba0: 72 0d 0a 20 20 20 20 2a 2f 09 09 09 0d 0a 20 20 r.. */.....
1bb0: 20 20 76 61 6c 75 65 4f 66 3a 20 66 75 6e 63 74 valueOf: funct
1bc0: 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 ion() {..
1bd0: 20 72 65 74 75 72 6e 20 74 68 69 73 2e 6c 65 76 return this.lev
1be0: 65 6c 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 3b 0d 0a el;.. }..};..
1bf0: 0d 0a 2f 2f 20 53 74 61 74 69 63 20 76 61 72 69 ..// Static vari
1c00: 61 62 6c 65 73 0d 0a 2f 2a 2a 20 0d 0a 2a 20 40 ables../** ..* @
1c10: 70 72 69 76 61 74 65 0d 0a 2a 2f 0d 0a 4c 6f 67 private..*/..Log
1c20: 34 6a 73 2e 4c 65 76 65 6c 2e 4f 46 46 5f 49 4e 4js.Level.OFF_IN
1c30: 54 20 3d 20 4e 75 6d 62 65 72 2e 4d 41 58 5f 56 T = Number.MAX_V
1c40: 41 4c 55 45 3b 0d 0a 2f 2a 2a 20 0d 0a 2a 20 40 ALUE;../** ..* @
1c50: 70 72 69 76 61 74 65 0d 0a 2a 2f 0d 0a 4c 6f 67 private..*/..Log
1c60: 34 6a 73 2e 4c 65 76 65 6c 2e 46 41 54 41 4c 5f 4js.Level.FATAL_
1c70: 49 4e 54 20 3d 20 35 30 30 30 30 3b 0d 0a 2f 2a INT = 50000;../*
1c80: 2a 20 0d 0a 2a 20 40 70 72 69 76 61 74 65 0d 0a * ..* @private..
1c90: 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c */..Log4js.Level
1ca0: 2e 45 52 52 4f 52 5f 49 4e 54 20 3d 20 34 30 30 .ERROR_INT = 400
1cb0: 30 30 3b 0d 0a 2f 2a 2a 20 0d 0a 2a 20 40 70 72 00;../** ..* @pr
1cc0: 69 76 61 74 65 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a ivate..*/..Log4j
1cd0: 73 2e 4c 65 76 65 6c 2e 57 41 52 4e 5f 49 4e 54 s.Level.WARN_INT
1ce0: 20 3d 20 33 30 30 30 30 3b 0d 0a 2f 2a 2a 20 0d = 30000;../** .
1cf0: 0a 2a 20 40 70 72 69 76 61 74 65 0d 0a 2a 2f 0d .* @private..*/.
1d00: 0a 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 49 4e .Log4js.Level.IN
1d10: 46 4f 5f 49 4e 54 20 3d 20 32 30 30 30 30 3b 0d FO_INT = 20000;.
1d20: 0a 2f 2a 2a 20 0d 0a 2a 20 40 70 72 69 76 61 74 ./** ..* @privat
1d30: 65 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e 4c 65 e..*/..Log4js.Le
1d40: 76 65 6c 2e 44 45 42 55 47 5f 49 4e 54 20 3d 20 vel.DEBUG_INT =
1d50: 31 30 30 30 30 3b 0d 0a 2f 2a 2a 20 0d 0a 2a 20 10000;../** ..*
1d60: 40 70 72 69 76 61 74 65 0d 0a 2a 2f 0d 0a 4c 6f @private..*/..Lo
1d70: 67 34 6a 73 2e 4c 65 76 65 6c 2e 54 52 41 43 45 g4js.Level.TRACE
1d80: 5f 49 4e 54 20 3d 20 35 30 30 30 3b 0d 0a 2f 2a _INT = 5000;../*
1d90: 2a 20 0d 0a 2a 20 40 70 72 69 76 61 74 65 0d 0a * ..* @private..
1da0: 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c */..Log4js.Level
1db0: 2e 41 4c 4c 5f 49 4e 54 20 3d 20 4e 75 6d 62 65 .ALL_INT = Numbe
1dc0: 72 2e 4d 49 4e 5f 56 41 4c 55 45 3b 0d 0a 0d 0a r.MIN_VALUE;....
1dd0: 2f 2a 2a 20 0d 0a 2a 20 4c 6f 67 67 69 6e 67 20 /** ..* Logging
1de0: 4c 65 76 65 6c 20 4f 46 46 20 2d 20 61 6c 6c 20 Level OFF - all
1df0: 64 69 73 61 62 6c 65 64 0d 0a 2a 20 40 74 79 70 disabled..* @typ
1e00: 65 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 0d 0a e Log4js.Level..
1e10: 2a 20 40 73 74 61 74 69 63 0d 0a 2a 2f 0d 0a 4c * @static..*/..L
1e20: 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 4f 46 46 20 og4js.Level.OFF
1e30: 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 2e 4c 65 76 = new Log4js.Lev
1e40: 65 6c 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e el(Log4js.Level.
1e50: 4f 46 46 5f 49 4e 54 2c 20 22 4f 46 46 22 29 3b OFF_INT, "OFF");
1e60: 0d 0a 2f 2a 2a 20 0d 0a 2a 20 4c 6f 67 67 69 6e ../** ..* Loggin
1e70: 67 20 4c 65 76 65 6c 20 46 61 74 61 6c 0d 0a 2a g Level Fatal..*
1e80: 20 40 74 79 70 65 20 4c 6f 67 34 6a 73 2e 4c 65 @type Log4js.Le
1e90: 76 65 6c 0d 0a 2a 20 40 73 74 61 74 69 63 0d 0a vel..* @static..
1ea0: 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c */..Log4js.Level
1eb0: 2e 46 41 54 41 4c 20 3d 20 6e 65 77 20 4c 6f 67 .FATAL = new Log
1ec0: 34 6a 73 2e 4c 65 76 65 6c 28 4c 6f 67 34 6a 73 4js.Level(Log4js
1ed0: 2e 4c 65 76 65 6c 2e 46 41 54 41 4c 5f 49 4e 54 .Level.FATAL_INT
1ee0: 2c 20 22 46 41 54 41 4c 22 29 3b 0d 0a 2f 2a 2a , "FATAL");../**
1ef0: 20 0d 0a 2a 20 4c 6f 67 67 69 6e 67 20 4c 65 76 ..* Logging Lev
1f00: 65 6c 20 45 72 72 6f 72 0d 0a 2a 20 40 74 79 70 el Error..* @typ
1f10: 65 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 0d 0a e Log4js.Level..
1f20: 2a 20 40 73 74 61 74 69 63 0d 0a 2a 2f 0d 0a 4c * @static..*/..L
1f30: 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 45 52 52 4f og4js.Level.ERRO
1f40: 52 20 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 2e 4c R = new Log4js.L
1f50: 65 76 65 6c 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 evel(Log4js.Leve
1f60: 6c 2e 45 52 52 4f 52 5f 49 4e 54 2c 20 22 45 52 l.ERROR_INT, "ER
1f70: 52 4f 52 22 29 3b 20 0d 0a 2f 2a 2a 20 0d 0a 2a ROR"); ../** ..*
1f80: 20 4c 6f 67 67 69 6e 67 20 4c 65 76 65 6c 20 57 Logging Level W
1f90: 61 72 6e 0d 0a 2a 20 40 74 79 70 65 20 4c 6f 67 arn..* @type Log
1fa0: 34 6a 73 2e 4c 65 76 65 6c 0d 0a 2a 20 40 73 74 4js.Level..* @st
1fb0: 61 74 69 63 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 atic..*/..Log4js
1fc0: 2e 4c 65 76 65 6c 2e 57 41 52 4e 20 3d 20 6e 65 .Level.WARN = ne
1fd0: 77 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 28 4c w Log4js.Level(L
1fe0: 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 57 41 52 4e og4js.Level.WARN
1ff0: 5f 49 4e 54 2c 20 22 57 41 52 4e 22 29 3b 20 0d _INT, "WARN"); .
2000: 0a 2f 2a 2a 20 0d 0a 2a 20 4c 6f 67 67 69 6e 67 ./** ..* Logging
2010: 20 4c 65 76 65 6c 20 49 6e 66 6f 0d 0a 2a 20 40 Level Info..* @
2020: 74 79 70 65 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 type Log4js.Leve
2030: 6c 0d 0a 2a 20 40 73 74 61 74 69 63 0d 0a 2a 2f l..* @static..*/
2040: 0d 0a 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 49 ..Log4js.Level.I
2050: 4e 46 4f 20 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 NFO = new Log4js
2060: 2e 4c 65 76 65 6c 28 4c 6f 67 34 6a 73 2e 4c 65 .Level(Log4js.Le
2070: 76 65 6c 2e 49 4e 46 4f 5f 49 4e 54 2c 20 22 49 vel.INFO_INT, "I
2080: 4e 46 4f 22 29 3b 20 20 20 20 20 0d 0a 2f 2a 2a NFO"); ../**
2090: 20 0d 0a 2a 20 4c 6f 67 67 69 6e 67 20 4c 65 76 ..* Logging Lev
20a0: 65 6c 20 44 65 62 75 67 0d 0a 2a 20 40 74 79 70 el Debug..* @typ
20b0: 65 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 0d 0a e Log4js.Level..
20c0: 2a 20 40 73 74 61 74 69 63 0d 0a 2a 2f 0d 0a 4c * @static..*/..L
20d0: 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 44 45 42 55 og4js.Level.DEBU
20e0: 47 20 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 2e 4c G = new Log4js.L
20f0: 65 76 65 6c 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 evel(Log4js.Leve
2100: 6c 2e 44 45 42 55 47 5f 49 4e 54 2c 20 22 44 45 l.DEBUG_INT, "DE
2110: 42 55 47 22 29 3b 20 20 0d 0a 2f 2a 2a 20 0d 0a BUG"); ../** ..
2120: 2a 20 4c 6f 67 67 69 6e 67 20 4c 65 76 65 6c 20 * Logging Level
2130: 54 72 61 63 65 0d 0a 2a 20 40 74 79 70 65 20 4c Trace..* @type L
2140: 6f 67 34 6a 73 2e 4c 65 76 65 6c 0d 0a 2a 20 40 og4js.Level..* @
2150: 73 74 61 74 69 63 0d 0a 2a 2f 0d 0a 4c 6f 67 34 static..*/..Log4
2160: 6a 73 2e 4c 65 76 65 6c 2e 54 52 41 43 45 20 3d js.Level.TRACE =
2170: 20 6e 65 77 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 new Log4js.Leve
2180: 6c 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 54 l(Log4js.Level.T
2190: 52 41 43 45 5f 49 4e 54 2c 20 22 54 52 41 43 45 RACE_INT, "TRACE
21a0: 22 29 3b 20 20 0d 0a 2f 2a 2a 20 0d 0a 2a 20 4c "); ../** ..* L
21b0: 6f 67 67 69 6e 67 20 4c 65 76 65 6c 20 41 6c 6c ogging Level All
21c0: 20 2d 20 41 6c 6c 20 74 72 61 63 65 73 20 61 72 - All traces ar
21d0: 65 20 65 6e 61 62 6c 65 64 0d 0a 2a 20 40 74 79 e enabled..* @ty
21e0: 70 65 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 0d pe Log4js.Level.
21f0: 0a 2a 20 40 73 74 61 74 69 63 0d 0a 2a 2f 0d 0a .* @static..*/..
2200: 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 41 4c 4c Log4js.Level.ALL
2210: 20 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 2e 4c 65 = new Log4js.Le
2220: 76 65 6c 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c vel(Log4js.Level
2230: 2e 41 4c 4c 5f 49 4e 54 2c 20 22 41 4c 4c 22 29 .ALL_INT, "ALL")
2240: 3b 20 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a 20 4c 6f 67 ; ..../**..* Log
2250: 34 6a 73 20 43 75 73 74 6f 6d 45 76 65 6e 74 0d 4js CustomEvent.
2260: 0a 2a 20 40 63 6f 6e 73 74 72 75 63 74 6f 72 0d .* @constructor.
2270: 0a 2a 20 40 61 75 74 68 6f 72 20 43 6f 72 65 79 .* @author Corey
2280: 20 4a 6f 68 6e 73 6f 6e 20 2d 20 6f 72 69 67 69 Johnson - origi
2290: 6e 61 6c 20 63 6f 64 65 20 69 6e 20 4c 75 6d 62 nal code in Lumb
22a0: 65 72 6a 61 63 6b 20 28 68 74 74 70 3a 2f 2f 67 erjack (http://g
22b0: 6c 65 65 70 67 6c 6f 70 2e 63 6f 6d 2f 6a 61 76 leepglop.com/jav
22c0: 61 73 63 72 69 70 74 73 2f 6c 6f 67 67 65 72 2f ascripts/logger/
22d0: 29 0d 0a 2a 20 40 61 75 74 68 6f 72 20 53 65 74 )..* @author Set
22e0: 68 20 43 68 69 73 61 6d 6f 72 65 20 2d 20 61 64 h Chisamore - ad
22f0: 61 70 74 65 64 20 66 6f 72 20 4c 6f 67 34 6a 73 apted for Log4js
2300: 0d 0a 2a 20 40 70 72 69 76 61 74 65 0d 0a 2a 2f ..* @private..*/
2310: 0d 0a 4c 6f 67 34 6a 73 2e 43 75 73 74 6f 6d 45 ..Log4js.CustomE
2320: 76 65 6e 74 20 3d 20 66 75 6e 63 74 69 6f 6e 28 vent = function(
2330: 29 20 7b 0d 0a 20 20 20 20 74 68 69 73 2e 6c 69 ) {.. this.li
2340: 73 74 65 6e 65 72 73 20 3d 20 5b 5d 3b 0d 0a 7d steners = [];..}
2350: 3b 0d 0a 0d 0a 4c 6f 67 34 6a 73 2e 43 75 73 74 ;....Log4js.Cust
2360: 6f 6d 45 76 65 6e 74 2e 70 72 6f 74 6f 74 79 70 omEvent.prototyp
2370: 65 20 3d 20 7b 0d 0a 0d 0a 20 20 20 20 2f 2a 2a e = {.... /**
2380: 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d .. * @param m
2390: 65 74 68 6f 64 20 6d 65 74 68 6f 64 20 74 6f 20 ethod method to
23a0: 62 65 20 61 64 64 65 64 0d 0a 20 20 20 20 2a 2f be added.. */
23b0: 20 0d 0a 20 20 20 20 61 64 64 4c 69 73 74 65 6e .. addListen
23c0: 65 72 20 3a 20 66 75 6e 63 74 69 6f 6e 28 6d 65 er : function(me
23d0: 74 68 6f 64 29 20 7b 0d 0a 20 20 20 20 20 20 20 thod) {..
23e0: 20 74 68 69 73 2e 6c 69 73 74 65 6e 65 72 73 2e this.listeners.
23f0: 70 75 73 68 28 6d 65 74 68 6f 64 29 3b 0d 0a 20 push(method);..
2400: 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 2f 2a 2a },.... /**
2410: 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d .. * @param m
2420: 65 74 68 6f 64 20 6d 65 74 68 6f 64 20 74 6f 20 ethod method to
2430: 62 65 20 72 65 6d 6f 76 65 64 0d 0a 20 20 20 20 be removed..
2440: 2a 2f 20 0d 0a 20 20 20 20 72 65 6d 6f 76 65 4c */ .. removeL
2450: 69 73 74 65 6e 65 72 20 3a 20 66 75 6e 63 74 69 istener : functi
2460: 6f 6e 28 6d 65 74 68 6f 64 29 20 7b 0d 0a 20 20 on(method) {..
2470: 20 20 20 20 20 20 76 61 72 20 66 6f 75 6e 64 49 var foundI
2480: 6e 64 65 78 65 73 20 3d 20 74 68 69 73 2e 66 69 ndexes = this.fi
2490: 6e 64 4c 69 73 74 65 6e 65 72 49 6e 64 65 78 65 ndListenerIndexe
24a0: 73 28 6d 65 74 68 6f 64 29 3b 0d 0a 0d 0a 20 20 s(method);....
24b0: 20 20 20 20 20 20 66 6f 72 28 76 61 72 20 69 20 for(var i
24c0: 3d 20 30 3b 20 69 20 3c 20 66 6f 75 6e 64 49 6e = 0; i < foundIn
24d0: 64 65 78 65 73 2e 6c 65 6e 67 74 68 3b 20 69 2b dexes.length; i+
24e0: 2b 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 +) {..
24f0: 20 20 74 68 69 73 2e 6c 69 73 74 65 6e 65 72 73 this.listeners
2500: 2e 73 70 6c 69 63 65 28 66 6f 75 6e 64 49 6e 64 .splice(foundInd
2510: 65 78 65 73 5b 69 5d 2c 20 31 29 3b 0d 0a 20 20 exes[i], 1);..
2520: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d }.. },.
2530: 0a 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 ... /**..
2540: 2a 20 40 70 61 72 61 6d 20 68 61 6e 64 6c 65 72 * @param handler
2550: 0d 0a 20 20 20 20 2a 2f 20 0d 0a 20 20 20 20 64 .. */ .. d
2560: 69 73 70 61 74 63 68 20 3a 20 66 75 6e 63 74 69 ispatch : functi
2570: 6f 6e 28 68 61 6e 64 6c 65 72 29 20 7b 0d 0a 20 on(handler) {..
2580: 20 20 20 20 20 20 20 66 6f 72 28 76 61 72 20 69 for(var i
2590: 20 3d 20 30 3b 20 69 20 3c 20 74 68 69 73 2e 6c = 0; i < this.l
25a0: 69 73 74 65 6e 65 72 73 2e 6c 65 6e 67 74 68 3b isteners.length;
25b0: 20 69 2b 2b 29 20 7b 0d 0a 20 20 20 20 20 20 20 i++) {..
25c0: 20 20 20 20 20 74 72 79 20 7b 0d 0a 20 20 20 20 try {..
25d0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
25e0: 2e 6c 69 73 74 65 6e 65 72 73 5b 69 5d 28 68 61 .listeners[i](ha
25f0: 6e 64 6c 65 72 29 3b 0d 0a 20 20 20 20 20 20 20 ndler);..
2600: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 }..
2610: 20 20 20 20 63 61 74 63 68 20 28 65 29 20 7b 0d catch (e) {.
2620: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
2630: 20 6c 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 77 61 log4jsLogger.wa
2640: 72 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 72 75 rn("Could not ru
2650: 6e 20 74 68 65 20 6c 69 73 74 65 6e 65 72 20 22 n the listener "
2660: 20 2b 20 74 68 69 73 2e 6c 69 73 74 65 6e 65 72 + this.listener
2670: 73 5b 69 5d 20 2b 20 22 2e 20 5c 6e 22 20 2b 20 s[i] + ". \n" +
2680: 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 e);..
2690: 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 }.. }..
26a0: 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 2f 2a 2a },.... /**
26b0: 0d 0a 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 .. * @private
26c0: 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6d .. * @param m
26d0: 65 74 68 6f 64 0d 0a 20 20 20 20 2a 2f 0d 0a 20 ethod.. */..
26e0: 20 20 20 66 69 6e 64 4c 69 73 74 65 6e 65 72 49 findListenerI
26f0: 6e 64 65 78 65 73 20 3a 20 66 75 6e 63 74 69 6f ndexes : functio
2700: 6e 28 6d 65 74 68 6f 64 29 20 7b 0d 0a 20 20 20 n(method) {..
2710: 20 20 20 20 20 76 61 72 20 69 6e 64 65 78 65 73 var indexes
2720: 20 3d 20 5b 5d 3b 0d 0a 20 20 20 20 20 20 20 20 = [];..
2730: 66 6f 72 28 76 61 72 20 69 20 3d 20 30 3b 20 69 for(var i = 0; i
2740: 20 3c 20 74 68 69 73 2e 6c 69 73 74 65 6e 65 72 < this.listener
2750: 73 2e 6c 65 6e 67 74 68 3b 20 69 2b 2b 29 20 7b s.length; i++) {
2760: 09 09 09 0d 0a 20 20 20 20 20 20 20 20 20 20 20 .....
2770: 20 69 66 20 28 74 68 69 73 2e 6c 69 73 74 65 6e if (this.listen
2780: 65 72 73 5b 69 5d 20 3d 3d 20 6d 65 74 68 6f 64 ers[i] == method
2790: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ) {..
27a0: 20 20 20 20 20 69 6e 64 65 78 65 73 2e 70 75 73 indexes.pus
27b0: 68 28 69 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 h(i);..
27c0: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d }.. }.
27d0: 0a 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 ... retur
27e0: 6e 20 69 6e 64 65 78 65 73 3b 0d 0a 20 20 20 20 n indexes;..
27f0: 7d 0d 0a 7d 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a 20 }..};..../**..*
2800: 4d 6f 64 65 6c 73 20 61 20 6c 6f 67 67 69 6e 67 Models a logging
2810: 20 65 76 65 6e 74 2e 0d 0a 2a 20 40 63 6f 6e 73 event...* @cons
2820: 74 72 75 63 74 6f 72 0d 0a 2a 20 40 70 61 72 61 tructor..* @para
2830: 6d 20 7b 53 74 72 69 6e 67 7d 20 63 61 74 65 67 m {String} categ
2840: 6f 72 79 4e 61 6d 65 20 6e 61 6d 65 20 6f 66 20 oryName name of
2850: 63 61 74 65 67 6f 72 79 0d 0a 2a 20 40 70 61 72 category..* @par
2860: 61 6d 20 7b 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c am {Log4js.Level
2870: 7d 20 6c 65 76 65 6c 20 6c 65 76 65 6c 20 6f 66 } level level of
2880: 20 6d 65 73 73 61 67 65 0d 0a 2a 20 40 70 61 72 message..* @par
2890: 61 6d 20 7b 53 74 72 69 6e 67 7d 20 6d 65 73 73 am {String} mess
28a0: 61 67 65 20 6d 65 73 73 61 67 65 20 74 6f 20 6c age message to l
28b0: 6f 67 0d 0a 2a 20 40 70 61 72 61 6d 20 7b 4c 6f og..* @param {Lo
28c0: 67 34 6a 73 2e 4c 6f 67 67 65 72 7d 20 6c 6f 67 g4js.Logger} log
28d0: 67 65 72 20 74 68 65 20 61 73 73 6f 63 69 61 74 ger the associat
28e0: 65 64 20 6c 6f 67 67 65 72 0d 0a 2a 20 40 61 75 ed logger..* @au
28f0: 74 68 6f 72 20 53 65 74 68 20 43 68 69 73 61 6d thor Seth Chisam
2900: 6f 72 65 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e ore..*/..Log4js.
2910: 4c 6f 67 67 69 6e 67 45 76 65 6e 74 20 3d 20 66 LoggingEvent = f
2920: 75 6e 63 74 69 6f 6e 28 63 61 74 65 67 6f 72 79 unction(category
2930: 4e 61 6d 65 2c 20 6c 65 76 65 6c 2c 20 6d 65 73 Name, level, mes
2940: 73 61 67 65 2c 20 65 78 63 65 70 74 69 6f 6e 2c sage, exception,
2950: 20 6c 6f 67 67 65 72 29 20 7b 0d 0a 20 20 20 20 logger) {..
2960: 2f 2a 2a 0d 0a 20 20 20 20 2a 20 74 68 65 20 74 /**.. * the t
2970: 69 6d 65 73 74 61 6d 70 20 6f 66 20 74 68 65 20 imestamp of the
2980: 4c 6f 67 67 69 6e 67 20 45 76 65 6e 74 0d 0a 20 Logging Event..
2990: 20 20 20 2a 20 40 74 79 70 65 20 44 61 74 65 0d * @type Date.
29a0: 0a 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 0d . * @private.
29b0: 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 68 69 . */.. thi
29c0: 73 2e 73 74 61 72 74 54 69 6d 65 20 3d 20 6e 65 s.startTime = ne
29d0: 77 20 44 61 74 65 28 29 3b 0d 0a 20 20 20 20 2f w Date();.. /
29e0: 2a 2a 0d 0a 20 20 20 20 2a 20 63 61 74 65 67 6f **.. * catego
29f0: 72 79 20 6f 66 20 65 76 65 6e 74 0d 0a 20 20 20 ry of event..
2a00: 20 2a 20 40 74 79 70 65 20 53 74 72 69 6e 67 0d * @type String.
2a10: 0a 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 0d . * @private.
2a20: 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 68 69 . */.. thi
2a30: 73 2e 63 61 74 65 67 6f 72 79 4e 61 6d 65 20 3d s.categoryName =
2a40: 20 63 61 74 65 67 6f 72 79 4e 61 6d 65 3b 0d 0a categoryName;..
2a50: 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 74 /**.. * t
2a60: 68 65 20 6c 6f 67 67 69 6e 67 20 6d 65 73 73 61 he logging messa
2a70: 67 65 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 ge.. * @type
2a80: 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 20 40 70 String.. * @p
2a90: 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d 0a rivate.. */..
2aa0: 20 20 20 20 74 68 69 73 2e 6d 65 73 73 61 67 65 this.message
2ab0: 20 3d 20 6d 65 73 73 61 67 65 3b 0d 0a 20 20 20 = message;..
2ac0: 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 74 68 65 20 /**.. * the
2ad0: 6c 6f 67 67 69 6e 67 20 65 78 63 65 70 74 69 6f logging exceptio
2ae0: 6e 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 45 n.. * @type E
2af0: 78 63 65 70 74 69 6f 6e 0d 0a 20 20 20 20 2a 20 xception.. *
2b00: 40 70 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f @private.. */
2b10: 0d 0a 20 20 20 20 74 68 69 73 2e 65 78 63 65 70 .. this.excep
2b20: 74 69 6f 6e 20 3d 20 65 78 63 65 70 74 69 6f 6e tion = exception
2b30: 3b 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 ;.. /**..
2b40: 2a 20 6c 65 76 65 6c 20 6f 66 20 6c 6f 67 0d 0a * level of log..
2b50: 20 20 20 20 2a 20 40 74 79 70 65 20 4c 6f 67 34 * @type Log4
2b60: 6a 73 2e 4c 65 76 65 6c 0d 0a 20 20 20 20 2a 20 js.Level.. *
2b70: 40 70 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f @private.. */
2b80: 0d 0a 20 20 20 20 74 68 69 73 2e 6c 65 76 65 6c .. this.level
2b90: 20 3d 20 6c 65 76 65 6c 3b 0d 0a 20 20 20 20 2f = level;.. /
2ba0: 2a 2a 0d 0a 20 20 20 20 2a 20 72 65 66 65 72 65 **.. * refere
2bb0: 6e 63 65 20 74 6f 20 6c 6f 67 67 65 72 0d 0a 20 nce to logger..
2bc0: 20 20 20 2a 20 40 74 79 70 65 20 4c 6f 67 34 6a * @type Log4j
2bd0: 73 2e 4c 6f 67 67 65 72 0d 0a 20 20 20 20 2a 20 s.Logger.. *
2be0: 40 70 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f @private.. */
2bf0: 0d 0a 20 20 20 20 74 68 69 73 2e 6c 6f 67 67 65 .. this.logge
2c00: 72 20 3d 20 6c 6f 67 67 65 72 3b 0d 0a 7d 3b 0d r = logger;..};.
2c10: 0a 0d 0a 4c 6f 67 34 6a 73 2e 4c 6f 67 67 69 6e ...Log4js.Loggin
2c20: 67 45 76 65 6e 74 2e 70 72 6f 74 6f 74 79 70 65 gEvent.prototype
2c30: 20 3d 20 7b 09 0d 0a 20 20 20 20 2f 2a 2a 0d 0a = {... /**..
2c40: 20 20 20 20 2a 20 67 65 74 20 74 68 65 20 74 69 * get the ti
2c50: 6d 65 73 74 61 6d 70 20 66 6f 72 6d 61 74 74 65 mestamp formatte
2c60: 64 20 61 73 20 53 74 72 69 6e 67 2e 0d 0a 20 20 d as String...
2c70: 20 20 2a 20 40 72 65 74 75 72 6e 20 7b 53 74 72 * @return {Str
2c80: 69 6e 67 7d 20 66 6f 72 6d 61 74 74 65 64 20 74 ing} formatted t
2c90: 69 6d 65 73 74 61 6d 70 0d 0a 20 20 20 20 2a 20 imestamp.. *
2ca0: 40 73 65 65 20 4c 6f 67 34 6a 73 23 73 65 74 44 @see Log4js#setD
2cb0: 61 74 65 46 6f 72 6d 61 74 28 29 0d 0a 20 20 20 ateFormat()..
2cc0: 20 2a 2f 0d 0a 20 20 20 20 67 65 74 46 6f 72 6d */.. getForm
2cd0: 61 74 74 65 64 54 69 6d 65 73 74 61 6d 70 3a 20 attedTimestamp:
2ce0: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 function() {..
2cf0: 20 20 20 20 20 20 69 66 28 74 68 69 73 2e 6c 6f if(this.lo
2d00: 67 67 65 72 29 20 7b 0d 0a 20 20 20 20 20 20 20 gger) {..
2d10: 20 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 return this
2d20: 2e 6c 6f 67 67 65 72 2e 67 65 74 46 6f 72 6d 61 .logger.getForma
2d30: 74 74 65 64 54 69 6d 65 73 74 61 6d 70 28 74 68 ttedTimestamp(th
2d40: 69 73 2e 73 74 61 72 74 54 69 6d 65 29 3b 0d 0a is.startTime);..
2d50: 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b } else {
2d60: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 .. re
2d70: 74 75 72 6e 20 74 68 69 73 2e 73 74 61 72 74 54 turn this.startT
2d80: 69 6d 65 2e 74 6f 47 4d 54 53 74 72 69 6e 67 28 ime.toGMTString(
2d90: 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 );.. }..
2da0: 20 20 20 7d 0d 0a 7d 3b 0d 0a 0d 0a 2f 2a 2a 0d }..};..../**.
2db0: 0a 2a 20 4c 6f 67 67 65 72 20 74 6f 20 6c 6f 67 .* Logger to log
2dc0: 20 6d 65 73 73 61 67 65 73 20 74 6f 20 74 68 65 messages to the
2dd0: 20 64 65 66 69 6e 65 64 20 61 70 70 65 6e 64 65 defined appende
2de0: 72 2e 3c 2f 70 3e 0d 0a 2a 20 44 65 66 61 75 6c r.</p>..* Defaul
2df0: 74 20 61 70 70 65 6e 64 65 72 20 69 73 20 41 70 t appender is Ap
2e00: 70 65 6e 64 65 72 2c 20 77 68 69 63 68 20 69 73 pender, which is
2e10: 20 69 67 6e 6f 72 69 6e 67 20 61 6c 6c 20 6d 65 ignoring all me
2e20: 73 73 61 67 65 73 2e 20 50 6c 65 61 73 65 0d 0a ssages. Please..
2e30: 2a 20 75 73 65 20 73 65 74 41 70 70 65 6e 64 65 * use setAppende
2e40: 72 28 29 20 74 6f 20 73 65 74 20 61 20 73 70 65 r() to set a spe
2e50: 63 69 66 69 63 20 61 70 70 65 6e 64 65 72 20 28 cific appender (
2e60: 65 2e 67 2e 20 57 69 6e 64 6f 77 41 70 70 65 6e e.g. WindowAppen
2e70: 64 65 72 29 2e 0d 0a 2a 20 75 73 65 20 7b 40 73 der)...* use {@s
2e80: 65 65 20 4c 6f 67 34 6a 73 23 67 65 74 4c 6f 67 ee Log4js#getLog
2e90: 67 65 72 28 53 74 72 69 6e 67 29 7d 20 74 6f 20 ger(String)} to
2ea0: 67 65 74 20 61 6e 20 69 6e 73 74 61 6e 63 65 2e get an instance.
2eb0: 0d 0a 2a 20 40 63 6f 6e 73 74 72 75 63 74 6f 72 ..* @constructor
2ec0: 0d 0a 2a 20 40 70 61 72 61 6d 20 6e 61 6d 65 20 ..* @param name
2ed0: 6e 61 6d 65 20 6f 66 20 63 61 74 65 67 6f 72 79 name of category
2ee0: 20 74 6f 20 6c 6f 67 20 74 6f 0d 0a 2a 20 40 61 to log to..* @a
2ef0: 75 74 68 6f 72 20 53 74 65 70 68 61 6e 20 53 74 uthor Stephan St
2f00: 72 69 74 74 6d 61 74 74 65 72 0d 0a 2a 2f 0d 0a rittmatter..*/..
2f10: 4c 6f 67 34 6a 73 2e 4c 6f 67 67 65 72 20 3d 20 Log4js.Logger =
2f20: 66 75 6e 63 74 69 6f 6e 28 6e 61 6d 65 29 20 7b function(name) {
2f30: 0d 0a 20 20 20 20 74 68 69 73 2e 6c 6f 67 67 69 .. this.loggi
2f40: 6e 67 45 76 65 6e 74 73 20 3d 20 5b 5d 3b 0d 0a ngEvents = [];..
2f50: 20 20 20 20 74 68 69 73 2e 61 70 70 65 6e 64 65 this.appende
2f60: 72 73 20 3d 20 5b 5d 3b 0d 0a 20 20 20 20 2f 2a rs = [];.. /*
2f70: 2a 20 63 61 74 65 67 6f 72 79 20 6f 66 20 6c 6f * category of lo
2f80: 67 67 65 72 20 2a 2f 0d 0a 20 20 20 20 74 68 69 gger */.. thi
2f90: 73 2e 63 61 74 65 67 6f 72 79 20 3d 20 6e 61 6d s.category = nam
2fa0: 65 20 7c 7c 20 22 22 3b 0d 0a 20 20 20 20 2f 2a e || "";.. /*
2fb0: 2a 20 6c 65 76 65 6c 20 74 6f 20 62 65 20 6c 6f * level to be lo
2fc0: 67 67 65 64 20 2a 2f 0d 0a 20 20 20 20 74 68 69 gged */.. thi
2fd0: 73 2e 6c 65 76 65 6c 20 3d 20 4c 6f 67 34 6a 73 s.level = Log4js
2fe0: 2e 4c 65 76 65 6c 2e 46 41 54 41 4c 3b 0d 0a 20 .Level.FATAL;..
2ff0: 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 64 61 .. this.da
3000: 74 65 66 6f 72 6d 61 74 20 3d 20 4c 6f 67 34 6a teformat = Log4j
3010: 73 2e 44 61 74 65 46 6f 72 6d 61 74 74 65 72 2e s.DateFormatter.
3020: 44 45 46 41 55 4c 54 5f 44 41 54 45 5f 46 4f 52 DEFAULT_DATE_FOR
3030: 4d 41 54 3b 0d 0a 20 20 20 20 74 68 69 73 2e 64 MAT;.. this.d
3040: 61 74 65 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e ateformatter = n
3050: 65 77 20 4c 6f 67 34 6a 73 2e 44 61 74 65 46 6f ew Log4js.DateFo
3060: 72 6d 61 74 74 65 72 28 29 3b 0d 0a 20 20 20 20 rmatter();..
3070: 0d 0a 20 20 20 20 74 68 69 73 2e 6f 6e 6c 6f 67 .. this.onlog
3080: 20 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 2e 43 75 = new Log4js.Cu
3090: 73 74 6f 6d 45 76 65 6e 74 28 29 3b 0d 0a 20 20 stomEvent();..
30a0: 20 20 74 68 69 73 2e 6f 6e 63 6c 65 61 72 20 3d this.onclear =
30b0: 20 6e 65 77 20 4c 6f 67 34 6a 73 2e 43 75 73 74 new Log4js.Cust
30c0: 6f 6d 45 76 65 6e 74 28 29 3b 0d 0a 20 20 20 20 omEvent();..
30d0: 0d 0a 20 20 20 20 2f 2a 2a 20 61 70 70 65 6e 64 .. /** append
30e0: 65 72 20 74 6f 20 77 72 69 74 65 20 69 6e 20 2a er to write in *
30f0: 2f 0d 0a 20 20 20 20 74 68 69 73 2e 61 70 70 65 /.. this.appe
3100: 6e 64 65 72 73 2e 70 75 73 68 28 6e 65 77 20 4c nders.push(new L
3110: 6f 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 28 74 og4js.Appender(t
3120: 68 69 73 29 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 his));.. ..
3130: 20 20 2f 2f 20 69 66 20 6d 75 6c 74 69 70 6c 65 // if multiple
3140: 20 6c 6f 67 20 6f 62 6a 65 63 74 73 20 61 72 65 log objects are
3150: 20 69 6e 73 74 61 6e 74 69 61 74 65 64 20 74 68 instantiated th
3160: 69 73 20 77 69 6c 6c 20 6f 6e 6c 79 20 6c 6f 67 is will only log
3170: 20 74 6f 20 74 68 65 20 6c 6f 67 20 0d 0a 20 20 to the log ..
3180: 20 20 2f 2f 20 6f 62 6a 65 63 74 20 74 68 61 74 // object that
3190: 20 69 73 20 64 65 63 6c 61 72 65 64 20 6c 61 73 is declared las
31a0: 74 20 63 61 6e 27 74 20 73 65 65 6d 20 74 6f 20 t can't seem to
31b0: 67 65 74 20 74 68 65 20 61 74 74 61 63 68 45 76 get the attachEv
31c0: 65 6e 74 20 6d 65 74 68 6f 64 20 74 6f 20 0d 0a ent method to ..
31d0: 20 20 20 20 2f 2f 20 77 6f 72 6b 20 63 6f 72 72 // work corr
31e0: 65 63 74 6c 79 0d 0a 20 20 20 20 74 72 79 20 7b ectly.. try {
31f0: 0d 0a 20 20 20 20 20 20 20 20 77 69 6e 64 6f 77 .. window
3200: 2e 6f 6e 65 72 72 6f 72 20 3d 20 74 68 69 73 2e .onerror = this.
3210: 77 69 6e 64 6f 77 45 72 72 6f 72 2e 62 69 6e 64 windowError.bind
3220: 28 74 68 69 73 29 3b 0d 0a 20 20 20 20 7d 20 63 (this);.. } c
3230: 61 74 63 68 20 28 65 29 20 7b 0d 0a 20 20 20 20 atch (e) {..
3240: 20 20 20 20 2f 2f 6c 6f 67 34 6a 73 4c 6f 67 67 //log4jsLogg
3250: 65 72 2e 66 61 74 61 6c 28 65 29 3b 0d 0a 20 20 er.fatal(e);..
3260: 20 20 7d 0d 0a 20 20 20 20 0d 0a 20 20 20 20 66 }.. .. f
3270: 6f 72 20 28 76 61 72 20 6b 20 69 6e 20 4c 6f 67 or (var k in Log
3280: 34 6a 73 2e 4c 65 76 65 6c 29 7b 0d 0a 20 20 20 4js.Level){..
3290: 20 20 20 20 20 76 61 72 20 6c 65 76 20 3d 20 4c var lev = L
32a0: 6f 67 34 6a 73 2e 4c 65 76 65 6c 5b 6b 5d 3b 0d og4js.Level[k];.
32b0: 0a 20 20 20 20 20 20 20 20 76 61 72 20 74 79 70 . var typ
32c0: 65 4e 61 6d 65 20 3d 20 4f 62 6a 65 63 74 2e 70 eName = Object.p
32d0: 72 6f 74 6f 74 79 70 65 2e 74 6f 53 74 72 69 6e rototype.toStrin
32e0: 67 2e 63 61 6c 6c 28 6c 65 76 29 3b 0d 0a 20 20 g.call(lev);..
32f0: 20 20 20 20 20 20 69 66 20 28 74 79 70 65 4e 61 if (typeNa
3300: 6d 65 20 3d 3d 20 22 5b 6f 62 6a 65 63 74 20 4f me == "[object O
3310: 62 6a 65 63 74 5d 22 29 7b 0d 0a 20 20 20 20 20 bject]"){..
3320: 20 20 20 20 20 20 20 76 61 72 20 6d 61 63 72 6f var macro
3330: 73 20 3d 20 53 65 6c 66 53 63 72 69 70 74 2e 73 s = SelfScript.s
3340: 65 6c 66 5b 22 6d 61 63 72 6f 73 d0 a3 d1 81 d1 elf["macros.....
3350: 82 d0 b0 d0 bd d0 be d0 b2 d0 b8 d1 82 d1 8c 20 ...............
3360: d0 bb d0 be d0 b3 d0 b3 20 22 2b 6e 61 6d 65 2b ........ "+name+
3370: 22 20 d0 bd d0 b0 20 22 20 2b 20 6b 5d 3b 0d 0a " .... " + k];..
3380: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
3390: 21 6d 61 63 72 6f 73 29 7b 0d 0a 20 20 20 20 20 !macros){..
33a0: 20 20 20 20 20 20 20 20 20 20 20 53 65 6c 66 53 SelfS
33b0: 63 72 69 70 74 2e 73 65 6c 66 5b 22 6d 61 63 72 cript.self["macr
33c0: 6f 73 d0 a3 d1 81 d1 82 d0 b0 d0 bd d0 be d0 b2 os..............
33d0: d0 b8 d1 82 d1 8c 20 d0 bb d0 be d0 b3 d0 b3 20 ...... ........
33e0: 22 2b 6e 61 6d 65 2b 22 20 d0 bd d0 b0 20 22 20 "+name+" .... "
33f0: 2b 20 6b 5d 20 3d 20 6e 65 77 20 46 75 6e 63 74 + k] = new Funct
3400: 69 6f 6e 28 27 76 61 72 20 6c 6f 67 67 65 72 20 ion('var logger
3410: 3d 20 4c 6f 67 34 6a 73 2e 67 65 74 4c 6f 67 67 = Log4js.getLogg
3420: 65 72 28 22 27 20 2b 20 6e 61 6d 65 20 2b 20 27 er("' + name + '
3430: 22 29 3b 20 6c 6f 67 67 65 72 2e 73 65 74 4c 65 "); logger.setLe
3440: 76 65 6c 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c vel(Log4js.Level
3450: 2e 27 2b 6c 65 76 2e 74 6f 53 74 72 69 6e 67 28 .'+lev.toString(
3460: 29 2b 27 29 3b 20 6c 6f 67 67 65 72 2e 6c 6f 67 )+'); logger.log
3470: 28 22 d0 a3 d1 80 d0 be d0 b2 d0 b5 d0 bd d1 8c ("..............
3480: 20 d0 bb d0 be d0 b3 d0 b0 20 d0 b8 d0 b7 d0 bc ........ ......
3490: d0 b5 d0 bd d0 b5 d0 bd 20 d0 bd d0 b0 20 27 2b ........ .... '+
34a0: 6c 65 76 2e 74 6f 53 74 72 69 6e 67 28 29 2b 27 lev.toString()+'
34b0: 20 22 29 3b 27 29 3b 0d 0a 20 20 20 20 20 20 20 ");');..
34c0: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 }..
34d0: 7d 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 20 0d 0a }.. }.. ..
34e0: 7d 3b 0d 0a 0d 0a 4c 6f 67 34 6a 73 2e 4c 6f 67 };....Log4js.Log
34f0: 67 65 72 2e 70 72 6f 74 6f 74 79 70 65 20 3d 20 ger.prototype =
3500: 7b 0d 0a 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 {.... /**..
3510: 20 20 2a 20 61 64 64 20 61 64 64 69 74 69 6f 6e * add addition
3520: 61 6c 20 61 70 70 65 6e 64 65 72 2e 20 44 65 66 al appender. Def
3530: 61 75 6c 74 41 70 70 65 6e 64 65 72 20 61 6c 77 aultAppender alw
3540: 61 79 73 20 69 73 20 74 68 65 72 65 2e 0d 0a 20 ays is there...
3550: 20 20 20 2a 20 40 70 61 72 61 6d 20 61 70 70 65 * @param appe
3560: 6e 64 65 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 nder additional
3570: 77 61 6e 74 65 64 20 61 70 70 65 6e 64 65 72 0d wanted appender.
3580: 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 61 64 64 . */.. add
3590: 41 70 70 65 6e 64 65 72 3a 20 66 75 6e 63 74 69 Appender: functi
35a0: 6f 6e 28 61 70 70 65 6e 64 65 72 29 20 7b 0d 0a on(appender) {..
35b0: 20 20 20 20 20 20 20 20 69 66 20 28 61 70 70 65 if (appe
35c0: 6e 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 nder instanceof
35d0: 4c 6f 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 29 Log4js.Appender)
35e0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
35f0: 61 70 70 65 6e 64 65 72 2e 73 65 74 4c 6f 67 67 appender.setLogg
3600: 65 72 28 74 68 69 73 29 3b 0d 0a 20 20 20 20 20 er(this);..
3610: 20 20 20 20 20 20 20 74 68 69 73 2e 61 70 70 65 this.appe
3620: 6e 64 65 72 73 2e 70 75 73 68 28 61 70 70 65 6e nders.push(appen
3630: 64 65 72 29 3b 09 09 09 0d 0a 20 20 20 20 20 20 der);.....
3640: 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 } else {..
3650: 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 22 4e throw "N
3660: 6f 74 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 61 ot instance of a
3670: 6e 20 41 70 70 65 6e 64 65 72 3a 20 22 20 2b 20 n Appender: " +
3680: 61 70 70 65 6e 64 65 72 3b 0d 0a 20 20 20 20 20 appender;..
3690: 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a }.. },....
36a0: 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 73 /**.. * s
36b0: 65 74 20 41 72 72 61 79 20 6f 66 20 61 70 70 65 et Array of appe
36c0: 6e 64 65 72 73 2e 20 50 72 65 76 69 6f 75 73 20 nders. Previous
36d0: 41 70 70 65 6e 64 65 72 73 20 61 72 65 20 63 6c Appenders are cl
36e0: 65 61 72 65 64 20 61 6e 64 20 72 65 6d 6f 76 65 eared and remove
36f0: 64 2e 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 6d d... * @param
3700: 20 7b 41 72 72 61 79 7d 20 61 70 70 65 6e 64 65 {Array} appende
3710: 72 73 20 41 72 72 61 79 20 6f 66 20 41 70 70 65 rs Array of Appe
3720: 6e 64 65 72 73 0d 0a 20 20 20 20 2a 2f 0d 0a 20 nders.. */..
3730: 20 20 20 73 65 74 41 70 70 65 6e 64 65 72 73 3a setAppenders:
3740: 20 66 75 6e 63 74 69 6f 6e 28 61 70 70 65 6e 64 function(append
3750: 65 72 73 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 ers) {..
3760: 2f 2f 63 6c 65 61 72 20 66 69 72 73 74 20 61 6c //clear first al
3770: 6c 20 65 78 69 73 74 69 6e 67 20 61 70 70 65 6e l existing appen
3780: 64 65 72 73 0d 0a 20 20 20 20 20 20 20 20 66 6f ders.. fo
3790: 72 28 76 61 72 20 69 20 3d 20 30 3b 20 69 20 3c r(var i = 0; i <
37a0: 20 74 68 69 73 2e 61 70 70 65 6e 64 65 72 73 2e this.appenders.
37b0: 6c 65 6e 67 74 68 3b 20 69 2b 2b 29 20 7b 0d 0a length; i++) {..
37c0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
37d0: 2e 61 70 70 65 6e 64 65 72 73 5b 69 5d 2e 64 6f .appenders[i].do
37e0: 43 6c 65 61 72 28 29 3b 0d 0a 20 20 20 20 20 20 Clear();..
37f0: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 }.. ..
3800: 20 20 20 20 20 20 20 74 68 69 73 2e 61 70 70 65 this.appe
3810: 6e 64 65 72 73 20 3d 20 61 70 70 65 6e 64 65 72 nders = appender
3820: 73 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 s;.. ..
3830: 20 20 20 20 20 20 66 6f 72 28 76 61 72 20 6a 20 for(var j
3840: 3d 20 30 3b 20 6a 20 3c 20 74 68 69 73 2e 61 70 = 0; j < this.ap
3850: 70 65 6e 64 65 72 73 2e 6c 65 6e 67 74 68 3b 20 penders.length;
3860: 6a 2b 2b 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 j++) {..
3870: 20 20 20 20 74 68 69 73 2e 61 70 70 65 6e 64 65 this.appende
3880: 72 73 5b 6a 5d 2e 73 65 74 4c 6f 67 67 65 72 28 rs[j].setLogger(
3890: 74 68 69 73 29 3b 0d 0a 20 20 20 20 20 20 20 20 this);..
38a0: 7d 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d }.. },.. .
38b0: 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 . /**.. *
38c0: 53 65 74 20 74 68 65 20 4c 6f 67 6c 65 76 65 6c Set the Loglevel
38d0: 20 64 65 66 61 75 6c 74 20 69 73 20 4c 6f 67 4c default is LogL
38e0: 45 76 65 6c 2e 54 52 41 43 45 0d 0a 20 20 20 20 Evel.TRACE..
38f0: 2a 20 40 70 61 72 61 6d 20 6c 65 76 65 6c 20 77 * @param level w
3900: 61 6e 74 65 64 20 6c 6f 67 67 69 6e 67 20 6c 65 anted logging le
3910: 76 65 6c 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 vel.. */..
3920: 20 73 65 74 4c 65 76 65 6c 3a 20 66 75 6e 63 74 setLevel: funct
3930: 69 6f 6e 28 6c 65 76 65 6c 29 20 7b 0d 0a 20 20 ion(level) {..
3940: 20 20 20 20 20 20 74 68 69 73 2e 6c 65 76 65 6c this.level
3950: 20 3d 20 6c 65 76 65 6c 3b 0d 0a 20 20 20 20 7d = level;.. }
3960: 2c 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a ,.. .. /**
3970: 20 0d 0a 20 20 20 20 2a 20 6d 61 69 6e 20 6c 6f .. * main lo
3980: 67 20 6d 65 74 68 6f 64 20 6c 6f 67 67 69 6e 67 g method logging
3990: 20 74 6f 20 61 6c 6c 20 61 76 61 69 6c 61 62 6c to all availabl
39a0: 65 20 61 70 70 65 6e 64 65 72 73 20 0d 0a 20 20 e appenders ..
39b0: 20 20 2a 20 40 70 72 69 76 61 74 65 0d 0a 20 20 * @private..
39c0: 20 20 2a 2f 0d 0a 20 20 20 20 6c 6f 67 3a 20 66 */.. log: f
39d0: 75 6e 63 74 69 6f 6e 28 6c 6f 67 4c 65 76 65 6c unction(logLevel
39e0: 2c 20 6d 65 73 73 61 67 65 2c 20 65 78 63 65 70 , message, excep
39f0: 74 69 6f 6e 29 20 7b 0d 0a 20 20 20 20 20 20 20 tion) {..
3a00: 20 76 61 72 20 6c 6f 67 67 69 6e 67 45 76 65 6e var loggingEven
3a10: 74 20 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 2e 4c t = new Log4js.L
3a20: 6f 67 67 69 6e 67 45 76 65 6e 74 28 74 68 69 73 oggingEvent(this
3a30: 2e 63 61 74 65 67 6f 72 79 2c 20 6c 6f 67 4c 65 .category, logLe
3a40: 76 65 6c 2c 20 0d 0a 20 20 20 20 20 20 20 20 20 vel, ..
3a50: 20 20 20 6d 65 73 73 61 67 65 2c 20 65 78 63 65 message, exce
3a60: 70 74 69 6f 6e 2c 20 74 68 69 73 29 3b 0d 0a 20 ption, this);..
3a70: 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 67 this.logg
3a80: 69 6e 67 45 76 65 6e 74 73 2e 70 75 73 68 28 6c ingEvents.push(l
3a90: 6f 67 67 69 6e 67 45 76 65 6e 74 29 3b 0d 0a 20 oggingEvent);..
3aa0: 20 20 20 20 20 20 20 74 68 69 73 2e 6f 6e 6c 6f this.onlo
3ab0: 67 2e 64 69 73 70 61 74 63 68 28 6c 6f 67 67 69 g.dispatch(loggi
3ac0: 6e 67 45 76 65 6e 74 29 3b 0d 0a 20 20 20 20 7d ngEvent);.. }
3ad0: 2c 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a ,.. .. /**
3ae0: 20 63 6c 65 61 72 20 6c 6f 67 67 69 6e 67 20 2a clear logging *
3af0: 2f 0d 0a 20 20 20 20 63 6c 65 61 72 20 3a 20 66 /.. clear : f
3b00: 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 unction () {..
3b10: 20 20 20 20 20 20 74 72 79 7b 0d 0a 20 20 20 20 try{..
3b20: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 this.log
3b30: 67 69 6e 67 45 76 65 6e 74 73 20 3d 20 5b 5d 3b gingEvents = [];
3b40: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 .. th
3b50: 69 73 2e 6f 6e 63 6c 65 61 72 2e 64 69 73 70 61 is.onclear.dispa
3b60: 74 63 68 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 tch();..
3b70: 7d 20 63 61 74 63 68 28 65 29 7b 7d 0d 0a 20 20 } catch(e){}..
3b80: 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 20 63 68 },.. /** ch
3b90: 65 63 6b 73 20 69 66 20 4c 65 76 65 6c 20 54 72 ecks if Level Tr
3ba0: 61 63 65 20 69 73 20 65 6e 61 62 6c 65 64 20 2a ace is enabled *
3bb0: 2f 0d 0a 20 20 20 20 69 73 54 72 61 63 65 45 6e /.. isTraceEn
3bc0: 61 62 6c 65 64 3a 20 66 75 6e 63 74 69 6f 6e 28 abled: function(
3bd0: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 ) {.. if
3be0: 28 74 68 69 73 2e 6c 65 76 65 6c 2e 76 61 6c 75 (this.level.valu
3bf0: 65 4f 66 28 29 20 3c 3d 20 4c 6f 67 34 6a 73 2e eOf() <= Log4js.
3c00: 4c 65 76 65 6c 2e 54 52 41 43 45 2e 76 61 6c 75 Level.TRACE.valu
3c10: 65 4f 66 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 eOf()) {..
3c20: 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 return tru
3c30: 65 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 e;.. }..
3c40: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 return fa
3c50: 6c 73 65 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 lse;.. },..
3c60: 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 54 72 /** .. * Tr
3c70: 61 63 65 20 6d 65 73 73 61 67 65 73 20 0d 0a 20 ace messages ..
3c80: 20 20 20 2a 20 40 70 61 72 61 6d 20 6d 65 73 73 * @param mess
3c90: 61 67 65 20 7b 4f 62 6a 65 63 74 7d 20 6d 65 73 age {Object} mes
3ca0: 73 61 67 65 20 74 6f 20 62 65 20 6c 6f 67 67 65 sage to be logge
3cb0: 64 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 d.. */.. t
3cc0: 72 61 63 65 3a 20 66 75 6e 63 74 69 6f 6e 28 6d race: function(m
3cd0: 65 73 73 61 67 65 29 20 7b 0d 0a 20 20 20 20 20 essage) {..
3ce0: 20 20 20 69 66 20 28 74 68 69 73 2e 69 73 54 72 if (this.isTr
3cf0: 61 63 65 45 6e 61 62 6c 65 64 28 29 29 20 7b 0d aceEnabled()) {.
3d00: 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
3d10: 73 2e 6c 6f 67 28 4c 6f 67 34 6a 73 2e 4c 65 76 s.log(Log4js.Lev
3d20: 65 6c 2e 54 52 41 43 45 2c 20 6d 65 73 73 61 67 el.TRACE, messag
3d30: 65 2c 20 6e 75 6c 6c 29 3b 0d 0a 20 20 20 20 20 e, null);..
3d40: 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 }.. },..
3d50: 20 20 2f 2a 2a 20 63 68 65 63 6b 73 20 69 66 20 /** checks if
3d60: 4c 65 76 65 6c 20 44 65 62 75 67 20 69 73 20 65 Level Debug is e
3d70: 6e 61 62 6c 65 64 20 2a 2f 0d 0a 20 20 20 20 69 nabled */.. i
3d80: 73 44 65 62 75 67 45 6e 61 62 6c 65 64 3a 20 66 sDebugEnabled: f
3d90: 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 unction() {..
3da0: 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6c 65 if (this.le
3db0: 76 65 6c 2e 76 61 6c 75 65 4f 66 28 29 20 3c 3d vel.valueOf() <=
3dc0: 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 44 45 Log4js.Level.DE
3dd0: 42 55 47 2e 76 61 6c 75 65 4f 66 28 29 29 20 7b BUG.valueOf()) {
3de0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 .. re
3df0: 74 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20 turn true;..
3e00: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 72 }.. r
3e10: 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 eturn false;..
3e20: 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a },.. /** ..
3e30: 20 20 20 20 2a 20 44 65 62 75 67 20 6d 65 73 73 * Debug mess
3e40: 61 67 65 73 20 0d 0a 20 20 20 20 2a 20 40 70 61 ages .. * @pa
3e50: 72 61 6d 20 6d 65 73 73 61 67 65 20 7b 4f 62 6a ram message {Obj
3e60: 65 63 74 7d 20 6d 65 73 73 61 67 65 20 74 6f 20 ect} message to
3e70: 62 65 20 6c 6f 67 67 65 64 0d 0a 20 20 20 20 2a be logged.. *
3e80: 2f 0d 0a 20 20 20 20 64 65 62 75 67 3a 20 66 75 /.. debug: fu
3e90: 6e 63 74 69 6f 6e 28 6d 65 73 73 61 67 65 29 20 nction(message)
3ea0: 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 {.. if (t
3eb0: 68 69 73 2e 69 73 44 65 62 75 67 45 6e 61 62 6c his.isDebugEnabl
3ec0: 65 64 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 ed()) {..
3ed0: 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 28 4c 6f this.log(Lo
3ee0: 67 34 6a 73 2e 4c 65 76 65 6c 2e 44 45 42 55 47 g4js.Level.DEBUG
3ef0: 2c 20 6d 65 73 73 61 67 65 2c 20 6e 75 6c 6c 29 , message, null)
3f00: 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 ;.. }..
3f10: 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 },.. /**..
3f20: 20 20 20 2a 20 44 65 62 75 67 20 6d 65 73 73 61 * Debug messa
3f30: 67 65 73 20 0d 0a 20 20 20 20 2a 20 40 70 61 72 ges .. * @par
3f40: 61 6d 20 7b 4f 62 6a 65 63 74 7d 20 6d 65 73 73 am {Object} mess
3f50: 61 67 65 20 20 6d 65 73 73 61 67 65 20 74 6f 20 age message to
3f60: 62 65 20 6c 6f 67 67 65 64 0d 0a 20 20 20 20 2a be logged.. *
3f70: 20 40 70 61 72 61 6d 20 7b 54 68 72 6f 77 61 62 @param {Throwab
3f80: 6c 65 7d 20 74 68 72 6f 77 61 62 6c 65 20 0d 0a le} throwable ..
3f90: 20 20 20 20 2a 2f 0d 0a 20 20 20 20 64 65 62 75 */.. debu
3fa0: 67 3a 20 66 75 6e 63 74 69 6f 6e 28 6d 65 73 73 g: function(mess
3fb0: 61 67 65 2c 20 74 68 72 6f 77 61 62 6c 65 29 20 age, throwable)
3fc0: 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 {.. if (t
3fd0: 68 69 73 2e 69 73 44 65 62 75 67 45 6e 61 62 6c his.isDebugEnabl
3fe0: 65 64 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 ed()) {..
3ff0: 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 28 4c 6f this.log(Lo
4000: 67 34 6a 73 2e 4c 65 76 65 6c 2e 44 45 42 55 47 g4js.Level.DEBUG
4010: 2c 20 6d 65 73 73 61 67 65 2c 20 74 68 72 6f 77 , message, throw
4020: 61 62 6c 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 able);..
4030: 7d 0d 0a 20 20 20 20 7d 2c 09 0d 0a 20 20 20 20 }.. },...
4040: 2f 2a 2a 20 63 68 65 63 6b 73 20 69 66 20 4c 65 /** checks if Le
4050: 76 65 6c 20 49 6e 66 6f 20 69 73 20 65 6e 61 62 vel Info is enab
4060: 6c 65 64 20 2a 2f 0d 0a 20 20 20 20 69 73 49 6e led */.. isIn
4070: 66 6f 45 6e 61 62 6c 65 64 3a 20 66 75 6e 63 74 foEnabled: funct
4080: 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 ion() {..
4090: 20 69 66 20 28 74 68 69 73 2e 6c 65 76 65 6c 2e if (this.level.
40a0: 76 61 6c 75 65 4f 66 28 29 20 3c 3d 20 4c 6f 67 valueOf() <= Log
40b0: 34 6a 73 2e 4c 65 76 65 6c 2e 49 4e 46 4f 2e 76 4js.Level.INFO.v
40c0: 61 6c 75 65 4f 66 28 29 29 20 7b 0d 0a 20 20 20 alueOf()) {..
40d0: 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 return
40e0: 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 7d true;.. }
40f0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
4100: 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 7d 2c 0d false;.. },.
4110: 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a . /** .. *
4120: 20 6c 6f 67 67 69 6e 67 20 69 6e 66 6f 20 6d 65 logging info me
4130: 73 73 61 67 65 73 20 0d 0a 20 20 20 20 2a 20 40 ssages .. * @
4140: 70 61 72 61 6d 20 7b 4f 62 6a 65 63 74 7d 20 6d param {Object} m
4150: 65 73 73 61 67 65 20 20 6d 65 73 73 61 67 65 20 essage message
4160: 74 6f 20 62 65 20 6c 6f 67 67 65 64 0d 0a 20 20 to be logged..
4170: 20 20 2a 2f 0d 0a 20 20 20 20 69 6e 66 6f 3a 20 */.. info:
4180: 66 75 6e 63 74 69 6f 6e 28 6d 65 73 73 61 67 65 function(message
4190: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 ) {.. if
41a0: 28 74 68 69 73 2e 69 73 49 6e 66 6f 45 6e 61 62 (this.isInfoEnab
41b0: 6c 65 64 28 29 29 20 7b 0d 0a 20 20 20 20 20 20 led()) {..
41c0: 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 28 4c this.log(L
41d0: 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 49 4e 46 4f og4js.Level.INFO
41e0: 2c 20 6d 65 73 73 61 67 65 2c 20 6e 75 6c 6c 29 , message, null)
41f0: 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 ;.. }..
4200: 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a },.. /** ..
4210: 20 20 20 20 2a 20 6c 6f 67 67 69 6e 67 20 69 6e * logging in
4220: 66 6f 20 6d 65 73 73 61 67 65 73 20 0d 0a 20 20 fo messages ..
4230: 20 20 2a 20 40 70 61 72 61 6d 20 7b 4f 62 6a 65 * @param {Obje
4240: 63 74 7d 20 6d 65 73 73 61 67 65 20 20 6d 65 73 ct} message mes
4250: 73 61 67 65 20 74 6f 20 62 65 20 6c 6f 67 67 65 sage to be logge
4260: 64 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 d.. * @param
4270: 7b 54 68 72 6f 77 61 62 6c 65 7d 20 74 68 72 6f {Throwable} thro
4280: 77 61 62 6c 65 20 20 0d 0a 20 20 20 20 2a 2f 0d wable .. */.
4290: 0a 20 20 20 20 69 6e 66 6f 3a 20 66 75 6e 63 74 . info: funct
42a0: 69 6f 6e 28 6d 65 73 73 61 67 65 2c 20 74 68 72 ion(message, thr
42b0: 6f 77 61 62 6c 65 29 20 7b 0d 0a 20 20 20 20 20 owable) {..
42c0: 20 20 20 69 66 20 28 74 68 69 73 2e 69 73 49 6e if (this.isIn
42d0: 66 6f 45 6e 61 62 6c 65 64 28 29 29 20 7b 0d 0a foEnabled()) {..
42e0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
42f0: 2e 6c 6f 67 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 .log(Log4js.Leve
4300: 6c 2e 49 4e 46 4f 2c 20 6d 65 73 73 61 67 65 2c l.INFO, message,
4310: 20 74 68 72 6f 77 61 62 6c 65 29 3b 0d 0a 20 20 throwable);..
4320: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d }.. },.
4330: 0a 20 20 20 20 2f 2a 2a 20 63 68 65 63 6b 73 20 . /** checks
4340: 69 66 20 4c 65 76 65 6c 20 57 61 72 6e 20 69 73 if Level Warn is
4350: 20 65 6e 61 62 6c 65 64 20 2a 2f 0d 0a 20 20 20 enabled */..
4360: 20 69 73 57 61 72 6e 45 6e 61 62 6c 65 64 3a 20 isWarnEnabled:
4370: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 function() {..
4380: 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 6c if (this.l
4390: 65 76 65 6c 2e 76 61 6c 75 65 4f 66 28 29 20 3c evel.valueOf() <
43a0: 3d 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 57 = Log4js.Level.W
43b0: 41 52 4e 2e 76 61 6c 75 65 4f 66 28 29 29 20 7b ARN.valueOf()) {
43c0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 .. re
43d0: 74 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20 turn true;..
43e0: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 72 }.. r
43f0: 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 eturn false;..
4400: 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 2f 2a 2a 20 },.... /**
4410: 6c 6f 67 67 69 6e 67 20 77 61 72 6e 20 6d 65 73 logging warn mes
4420: 73 61 67 65 73 20 2a 2f 0d 0a 20 20 20 20 77 61 sages */.. wa
4430: 72 6e 3a 20 66 75 6e 63 74 69 6f 6e 28 6d 65 73 rn: function(mes
4440: 73 61 67 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 sage) {..
4450: 20 69 66 20 28 74 68 69 73 2e 69 73 57 61 72 6e if (this.isWarn
4460: 45 6e 61 62 6c 65 64 28 29 29 20 7b 0d 0a 20 20 Enabled()) {..
4470: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c this.l
4480: 6f 67 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e og(Log4js.Level.
4490: 57 41 52 4e 2c 20 6d 65 73 73 61 67 65 2c 20 6e WARN, message, n
44a0: 75 6c 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d ull);.. }
44b0: 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a .. },.. /*
44c0: 2a 20 6c 6f 67 67 69 6e 67 20 77 61 72 6e 20 6d * logging warn m
44d0: 65 73 73 61 67 65 73 20 2a 2f 0d 0a 20 20 20 20 essages */..
44e0: 77 61 72 6e 3a 20 66 75 6e 63 74 69 6f 6e 28 6d warn: function(m
44f0: 65 73 73 61 67 65 2c 20 74 68 72 6f 77 61 62 6c essage, throwabl
4500: 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 e) {.. if
4510: 20 28 74 68 69 73 2e 69 73 57 61 72 6e 45 6e 61 (this.isWarnEna
4520: 62 6c 65 64 28 29 29 20 7b 0d 0a 20 20 20 20 20 bled()) {..
4530: 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 28 this.log(
4540: 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 57 41 52 Log4js.Level.WAR
4550: 4e 2c 20 6d 65 73 73 61 67 65 2c 20 74 68 72 6f N, message, thro
4560: 77 61 62 6c 65 29 3b 0d 0a 20 20 20 20 20 20 20 wable);..
4570: 20 7d 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 }.. },..
4580: 2f 2a 2a 20 63 68 65 63 6b 73 20 69 66 20 4c 65 /** checks if Le
4590: 76 65 6c 20 45 72 72 6f 72 20 69 73 20 65 6e 61 vel Error is ena
45a0: 62 6c 65 64 20 2a 2f 0d 0a 20 20 20 20 69 73 45 bled */.. isE
45b0: 72 72 6f 72 45 6e 61 62 6c 65 64 3a 20 66 75 6e rrorEnabled: fun
45c0: 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 ction() {..
45d0: 20 20 20 69 66 20 28 74 68 69 73 2e 6c 65 76 65 if (this.leve
45e0: 6c 2e 76 61 6c 75 65 4f 66 28 29 20 3c 3d 20 4c l.valueOf() <= L
45f0: 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 45 52 52 4f og4js.Level.ERRO
4600: 52 2e 76 61 6c 75 65 4f 66 28 29 29 20 7b 0d 0a R.valueOf()) {..
4610: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 retu
4620: 72 6e 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 rn true;..
4630: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 72 65 74 }.. ret
4640: 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 urn false;..
4650: 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 20 6c 6f 67 67 },.. /** logg
4660: 69 6e 67 20 65 72 72 6f 72 20 6d 65 73 73 61 67 ing error messag
4670: 65 73 20 2a 2f 0d 0a 20 20 20 20 65 72 72 6f 72 es */.. error
4680: 3a 20 66 75 6e 63 74 69 6f 6e 28 6d 65 73 73 61 : function(messa
4690: 67 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 69 ge) {.. i
46a0: 66 20 28 74 68 69 73 2e 69 73 45 72 72 6f 72 45 f (this.isErrorE
46b0: 6e 61 62 6c 65 64 28 29 29 20 7b 0d 0a 20 20 20 nabled()) {..
46c0: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f this.lo
46d0: 67 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 45 g(Log4js.Level.E
46e0: 52 52 4f 52 2c 20 6d 65 73 73 61 67 65 2c 20 6e RROR, message, n
46f0: 75 6c 6c 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d ull);.. }
4700: 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a .. },.. /*
4710: 2a 20 6c 6f 67 67 69 6e 67 20 65 72 72 6f 72 20 * logging error
4720: 6d 65 73 73 61 67 65 73 20 2a 2f 0d 0a 20 20 20 messages */..
4730: 20 65 72 72 6f 72 3a 20 66 75 6e 63 74 69 6f 6e error: function
4740: 28 6d 65 73 73 61 67 65 2c 20 74 68 72 6f 77 61 (message, throwa
4750: 62 6c 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 ble) {..
4760: 69 66 20 28 74 68 69 73 2e 69 73 45 72 72 6f 72 if (this.isError
4770: 45 6e 61 62 6c 65 64 28 29 29 20 7b 0d 0a 20 20 Enabled()) {..
4780: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c this.l
4790: 6f 67 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e og(Log4js.Level.
47a0: 45 52 52 4f 52 2c 20 6d 65 73 73 61 67 65 2c 20 ERROR, message,
47b0: 74 68 72 6f 77 61 62 6c 65 29 3b 0d 0a 20 20 20 throwable);..
47c0: 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d 0a }.. },..
47d0: 20 20 20 20 2f 2a 2a 20 63 68 65 63 6b 73 20 69 /** checks i
47e0: 66 20 4c 65 76 65 6c 20 46 61 74 61 6c 20 69 73 f Level Fatal is
47f0: 20 65 6e 61 62 6c 65 64 20 2a 2f 0d 0a 20 20 20 enabled */..
4800: 20 69 73 46 61 74 61 6c 45 6e 61 62 6c 65 64 3a isFatalEnabled:
4810: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 function() {..
4820: 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e if (this.
4830: 6c 65 76 65 6c 2e 76 61 6c 75 65 4f 66 28 29 20 level.valueOf()
4840: 3c 3d 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e <= Log4js.Level.
4850: 46 41 54 41 4c 2e 76 61 6c 75 65 4f 66 28 29 29 FATAL.valueOf())
4860: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
4870: 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a 20 20 return true;..
4880: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
4890: 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a return false;..
48a0: 20 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 20 },.. /**
48b0: 6c 6f 67 67 69 6e 67 20 66 61 74 61 6c 20 6d 65 logging fatal me
48c0: 73 73 61 67 65 73 20 2a 2f 0d 0a 20 20 20 20 66 ssages */.. f
48d0: 61 74 61 6c 3a 20 66 75 6e 63 74 69 6f 6e 28 6d atal: function(m
48e0: 65 73 73 61 67 65 29 20 7b 0d 0a 20 20 20 20 20 essage) {..
48f0: 20 20 20 69 66 20 28 74 68 69 73 2e 69 73 46 61 if (this.isFa
4900: 74 61 6c 45 6e 61 62 6c 65 64 28 29 29 20 7b 0d talEnabled()) {.
4910: 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
4920: 73 2e 6c 6f 67 28 4c 6f 67 34 6a 73 2e 4c 65 76 s.log(Log4js.Lev
4930: 65 6c 2e 46 41 54 41 4c 2c 20 6d 65 73 73 61 67 el.FATAL, messag
4940: 65 2c 20 6e 75 6c 6c 29 3b 0d 0a 20 20 20 20 20 e, null);..
4950: 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 }.. },..
4960: 20 20 2f 2a 2a 20 6c 6f 67 67 69 6e 67 20 66 61 /** logging fa
4970: 74 61 6c 20 6d 65 73 73 61 67 65 73 20 2a 2f 0d tal messages */.
4980: 0a 20 20 20 20 66 61 74 61 6c 3a 20 66 75 6e 63 . fatal: func
4990: 74 69 6f 6e 28 6d 65 73 73 61 67 65 2c 20 74 68 tion(message, th
49a0: 72 6f 77 61 62 6c 65 29 20 7b 0d 0a 20 20 20 20 rowable) {..
49b0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 69 73 46 if (this.isF
49c0: 61 74 61 6c 45 6e 61 62 6c 65 64 28 29 29 20 7b atalEnabled()) {
49d0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 .. th
49e0: 69 73 2e 6c 6f 67 28 4c 6f 67 34 6a 73 2e 4c 65 is.log(Log4js.Le
49f0: 76 65 6c 2e 46 41 54 41 4c 2c 20 6d 65 73 73 61 vel.FATAL, messa
4a00: 67 65 2c 20 74 68 72 6f 77 61 62 6c 65 29 3b 0d ge, throwable);.
4a10: 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 . }..
4a20: 7d 2c 09 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 },... /** ..
4a30: 20 20 20 2a 20 43 61 70 74 75 72 65 20 6d 61 69 * Capture mai
4a40: 6e 20 77 69 6e 64 6f 77 20 65 72 72 6f 72 73 20 n window errors
4a50: 61 6e 64 20 6c 6f 67 20 61 73 20 66 61 74 61 6c and log as fatal
4a60: 2e 0d 0a 20 20 20 20 2a 20 40 70 72 69 76 61 74 ... * @privat
4a70: 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 77 e.. */.. w
4a80: 69 6e 64 6f 77 45 72 72 6f 72 3a 20 66 75 6e 63 indowError: func
4a90: 74 69 6f 6e 28 6d 73 67 2c 20 75 72 6c 2c 20 6c tion(msg, url, l
4aa0: 69 6e 65 29 7b 0d 0a 20 20 20 20 20 20 20 20 76 ine){.. v
4ab0: 61 72 20 6d 65 73 73 61 67 65 20 3d 20 22 45 72 ar message = "Er
4ac0: 72 6f 72 20 69 6e 20 28 22 20 2b 20 28 75 72 6c ror in (" + (url
4ad0: 20 7c 7c 20 77 69 6e 64 6f 77 2e 6c 6f 63 61 74 || window.locat
4ae0: 69 6f 6e 29 20 2b 20 22 29 20 6f 6e 20 6c 69 6e ion) + ") on lin
4af0: 65 20 22 2b 20 6c 69 6e 65 20 2b 22 20 77 69 74 e "+ line +" wit
4b00: 68 20 6d 65 73 73 61 67 65 20 28 22 20 2b 20 6d h message (" + m
4b10: 73 67 20 2b 20 22 29 22 3b 0d 0a 20 20 20 20 20 sg + ")";..
4b20: 20 20 20 74 68 69 73 2e 6c 6f 67 28 4c 6f 67 34 this.log(Log4
4b30: 6a 73 2e 4c 65 76 65 6c 2e 46 41 54 41 4c 2c 20 js.Level.FATAL,
4b40: 6d 65 73 73 61 67 65 2c 20 6e 75 6c 6c 29 3b 09 message, null);.
4b50: 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a .. },.. ..
4b60: 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 53 /**.. * S
4b70: 65 74 20 74 68 65 20 64 61 74 65 20 66 6f 72 6d et the date form
4b80: 61 74 20 6f 66 20 6c 6f 67 67 65 72 2e 20 46 6f at of logger. Fo
4b90: 6c 6c 6f 77 69 6e 67 20 73 77 69 74 63 68 65 73 llowing switches
4ba0: 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 3a 0d are supported:.
4bb0: 0a 20 20 20 20 2a 20 3c 75 6c 3e 0d 0a 20 20 20 . * <ul>..
4bc0: 20 2a 20 3c 6c 69 3e 79 79 79 79 20 2d 20 54 68 * <li>yyyy - Th
4bd0: 65 20 79 65 61 72 3c 2f 6c 69 3e 0d 0a 20 20 20 e year</li>..
4be0: 20 2a 20 3c 6c 69 3e 4d 4d 20 2d 20 74 68 65 20 * <li>MM - the
4bf0: 6d 6f 6e 74 68 3c 2f 6c 69 3e 0d 0a 20 20 20 20 month</li>..
4c00: 2a 20 3c 6c 69 3e 64 64 20 2d 20 74 68 65 20 64 * <li>dd - the d
4c10: 61 79 20 6f 66 20 6d 6f 6e 74 68 3c 6c 69 3e 0d ay of month<li>.
4c20: 0a 20 20 20 20 2a 20 3c 6c 69 3e 68 68 20 2d 20 . * <li>hh -
4c30: 74 68 65 20 68 6f 75 72 3c 6c 69 3e 0d 0a 20 20 the hour<li>..
4c40: 20 20 2a 20 3c 6c 69 3e 6d 6d 20 2d 20 6d 69 6e * <li>mm - min
4c50: 75 74 65 73 3c 2f 6c 69 3e 0d 0a 20 20 20 20 2a utes</li>.. *
4c60: 20 3c 6c 69 3e 4f 20 2d 20 74 69 6d 65 7a 6f 6e <li>O - timezon
4c70: 65 20 6f 66 66 73 65 74 3c 2f 6c 69 3e 0d 0a 20 e offset</li>..
4c80: 20 20 20 2a 20 3c 2f 75 6c 3e 0d 0a 20 20 20 20 * </ul>..
4c90: 2a 20 40 70 61 72 61 6d 20 7b 53 74 72 69 6e 67 * @param {String
4ca0: 7d 20 66 6f 72 6d 61 74 20 66 6f 72 6d 61 74 20 } format format
4cb0: 53 74 72 69 6e 67 20 66 6f 72 20 74 68 65 20 64 String for the d
4cc0: 61 74 65 0d 0a 20 20 20 20 2a 20 40 73 65 65 20 ate.. * @see
4cd0: 23 67 65 74 54 69 6d 65 73 74 61 6d 70 0d 0a 20 #getTimestamp..
4ce0: 20 20 20 2a 2f 0d 0a 20 20 20 20 73 65 74 44 61 */.. setDa
4cf0: 74 65 46 6f 72 6d 61 74 3a 20 66 75 6e 63 74 69 teFormat: functi
4d00: 6f 6e 28 66 6f 72 6d 61 74 29 20 7b 0d 0a 20 20 on(format) {..
4d10: 20 20 20 20 20 20 74 68 69 73 2e 64 61 74 65 66 this.datef
4d20: 6f 72 6d 61 74 20 3d 20 66 6f 72 6d 61 74 3b 0d ormat = format;.
4d30: 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 . },.. ..
4d40: 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 47 65 /**.. * Ge
4d50: 6e 65 72 61 74 65 73 20 61 20 74 69 6d 65 73 74 nerates a timest
4d60: 61 6d 70 20 75 73 69 6e 67 20 74 68 65 20 66 6f amp using the fo
4d70: 72 6d 61 74 20 73 65 74 20 69 6e 20 7b 4c 6f 67 rmat set in {Log
4d80: 34 6a 73 2e 73 65 74 44 61 74 65 46 6f 72 6d 61 4js.setDateForma
4d90: 74 7d 2e 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 t}... * @para
4da0: 6d 20 7b 44 61 74 65 7d 20 64 61 74 65 20 74 68 m {Date} date th
4db0: 65 20 64 61 74 65 20 74 6f 20 66 6f 72 6d 61 74 e date to format
4dc0: 0d 0a 20 20 20 20 2a 20 40 73 65 65 20 23 73 65 .. * @see #se
4dd0: 74 44 61 74 65 46 6f 72 6d 61 74 0d 0a 20 20 20 tDateFormat..
4de0: 20 2a 20 40 72 65 74 75 72 6e 20 41 20 66 6f 72 * @return A for
4df0: 6d 61 74 74 65 64 20 74 69 6d 65 73 74 61 6d 70 matted timestamp
4e00: 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e with the curren
4e10: 74 20 64 61 74 65 20 61 6e 64 20 74 69 6d 65 2e t date and time.
4e20: 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 67 65 .. */.. ge
4e30: 74 46 6f 72 6d 61 74 74 65 64 54 69 6d 65 73 74 tFormattedTimest
4e40: 61 6d 70 3a 20 66 75 6e 63 74 69 6f 6e 28 64 61 amp: function(da
4e50: 74 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 te) {.. r
4e60: 65 74 75 72 6e 20 74 68 69 73 2e 64 61 74 65 66 eturn this.datef
4e70: 6f 72 6d 61 74 74 65 72 2e 66 6f 72 6d 61 74 44 ormatter.formatD
4e80: 61 74 65 28 64 61 74 65 2c 20 74 68 69 73 2e 64 ate(date, this.d
4e90: 61 74 65 66 6f 72 6d 61 74 29 3b 0d 0a 20 20 20 ateformat);..
4ea0: 20 7d 0d 0a 7d 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a }..};..../**..*
4eb0: 20 41 62 73 74 72 61 63 74 20 62 61 73 65 20 63 Abstract base c
4ec0: 6c 61 73 73 20 66 6f 72 20 6f 74 68 65 72 20 61 lass for other a
4ed0: 70 70 65 6e 64 65 72 73 2e 20 0d 0a 2a 20 49 74 ppenders. ..* It
4ee0: 20 69 73 20 64 6f 69 6e 67 20 6e 6f 74 68 69 6e is doing nothin
4ef0: 67 2e 0d 0a 2a 0d 0a 2a 20 40 63 6f 6e 73 74 72 g...*..* @constr
4f00: 75 63 74 6f 72 0d 0a 2a 20 40 70 61 72 61 6d 20 uctor..* @param
4f10: 7b 4c 6f 67 34 6a 73 2e 4c 6f 67 67 65 72 7d 20 {Log4js.Logger}
4f20: 6c 6f 67 67 65 72 20 6c 6f 67 34 6a 73 20 69 6e logger log4js in
4f30: 73 74 61 6e 63 65 20 74 68 69 73 20 61 70 70 65 stance this appe
4f40: 6e 64 65 72 20 69 73 20 61 74 74 61 63 68 65 64 nder is attached
4f50: 20 74 6f 0d 0a 2a 20 40 61 75 74 68 6f 72 20 53 to..* @author S
4f60: 74 65 70 68 61 6e 20 53 74 72 69 74 74 6d 61 74 tephan Strittmat
4f70: 74 65 72 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e ter..*/..Log4js.
4f80: 41 70 70 65 6e 64 65 72 20 3d 20 66 75 6e 63 74 Appender = funct
4f90: 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 20 20 2f 2a ion () {.. /*
4fa0: 2a 0d 0a 20 20 20 20 2a 20 52 65 66 65 72 65 6e *.. * Referen
4fb0: 63 65 20 74 6f 20 63 61 6c 6c 69 6e 67 20 6c 6f ce to calling lo
4fc0: 67 67 65 72 0d 0a 20 20 20 20 2a 20 40 74 79 70 gger.. * @typ
4fd0: 65 20 4c 6f 67 34 6a 73 2e 4c 6f 67 67 65 72 0d e Log4js.Logger.
4fe0: 0a 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 0d . * @private.
4ff0: 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 68 69 . */.. thi
5000: 73 2e 6c 6f 67 67 65 72 20 3d 20 6e 75 6c 6c 3b s.logger = null;
5010: 0d 0a 7d 3b 0d 0a 0d 0a 4c 6f 67 34 6a 73 2e 41 ..};....Log4js.A
5020: 70 70 65 6e 64 65 72 2e 70 72 6f 74 6f 74 79 70 ppender.prototyp
5030: 65 20 3d 20 7b 0d 0a 20 20 20 20 2f 2a 2a 20 0d e = {.. /** .
5040: 0a 20 20 20 20 2a 20 61 70 70 65 6e 64 73 20 74 . * appends t
5050: 68 65 20 67 69 76 65 6e 20 6c 6f 67 67 69 6e 67 he given logging
5060: 45 76 65 6e 74 20 61 70 70 65 6e 64 65 72 20 73 Event appender s
5070: 70 65 63 69 66 69 63 0d 0a 20 20 20 20 2a 20 40 pecific.. * @
5080: 70 61 72 61 6d 20 7b 4c 6f 67 34 6a 73 2e 4c 6f param {Log4js.Lo
5090: 67 67 69 6e 67 45 76 65 6e 74 7d 20 6c 6f 67 67 ggingEvent} logg
50a0: 69 6e 67 45 76 65 6e 74 20 6c 6f 67 67 69 6e 67 ingEvent logging
50b0: 45 76 65 6e 74 20 74 6f 20 61 70 70 65 6e 64 0d Event to append.
50c0: 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 64 6f 41 . */.. doA
50d0: 70 70 65 6e 64 3a 20 66 75 6e 63 74 69 6f 6e 28 ppend: function(
50e0: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 29 20 7b 0d loggingEvent) {.
50f0: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b . return;
5100: 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a .. },.. /*
5110: 2a 20 0d 0a 20 20 20 20 2a 20 63 6c 65 61 72 73 * .. * clears
5120: 20 74 68 65 20 41 70 70 65 6e 64 65 72 0d 0a 20 the Appender..
5130: 20 20 20 2a 2f 0d 0a 20 20 20 20 64 6f 43 6c 65 */.. doCle
5140: 61 72 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b ar: function() {
5150: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
5160: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d ;.. },.. .
5170: 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 . /**.. *
5180: 53 65 74 20 74 68 65 20 4c 61 79 6f 75 74 20 66 Set the Layout f
5190: 6f 72 20 74 68 69 73 20 61 70 70 65 6e 64 65 72 or this appender
51a0: 2e 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 ... * @param
51b0: 7b 4c 6f 67 34 6a 73 2e 4c 61 79 6f 75 74 7d 20 {Log4js.Layout}
51c0: 6c 61 79 6f 75 74 20 4c 61 79 6f 75 74 20 66 6f layout Layout fo
51d0: 72 20 66 6f 72 6d 61 74 74 69 6e 67 20 6c 6f 67 r formatting log
51e0: 67 69 6e 67 45 76 65 6e 74 0d 0a 20 20 20 20 2a gingEvent.. *
51f0: 2f 0d 0a 20 20 20 20 73 65 74 4c 61 79 6f 75 74 /.. setLayout
5200: 3a 20 66 75 6e 63 74 69 6f 6e 28 6c 61 79 6f 75 : function(layou
5210: 74 29 7b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 t){.. thi
5220: 73 2e 6c 61 79 6f 75 74 20 3d 20 6c 61 79 6f 75 s.layout = layou
5230: 74 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 t;.. },..
5240: 2f 2a 2a 0d 0a 20 20 20 20 2a 20 53 65 74 20 72 /**.. * Set r
5250: 65 66 65 72 65 6e 63 65 20 74 6f 20 74 68 65 20 eference to the
5260: 6c 6f 67 67 65 72 2e 0d 0a 20 20 20 20 2a 20 40 logger... * @
5270: 70 61 72 61 6d 20 7b 4c 6f 67 34 6a 73 2e 4c 6f param {Log4js.Lo
5280: 67 67 65 72 7d 20 74 68 65 20 69 6e 76 6f 6b 69 gger} the invoki
5290: 6e 67 20 6c 6f 67 67 65 72 0d 0a 20 20 20 20 2a ng logger.. *
52a0: 2f 0d 0a 20 20 20 20 73 65 74 4c 6f 67 67 65 72 /.. setLogger
52b0: 3a 20 66 75 6e 63 74 69 6f 6e 28 6c 6f 67 67 65 : function(logge
52c0: 72 29 7b 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 r){.. //
52d0: 61 64 64 20 6c 69 73 74 65 6e 65 72 20 74 6f 20 add listener to
52e0: 74 68 65 20 6c 6f 67 67 65 72 20 6d 65 74 68 6f the logger metho
52f0: 64 73 0d 0a 20 20 20 20 20 20 20 20 6c 6f 67 67 ds.. logg
5300: 65 72 2e 6f 6e 6c 6f 67 2e 61 64 64 4c 69 73 74 er.onlog.addList
5310: 65 6e 65 72 28 4c 6f 67 34 6a 73 2e 62 69 6e 64 ener(Log4js.bind
5320: 28 74 68 69 73 2e 64 6f 41 70 70 65 6e 64 2c 20 (this.doAppend,
5330: 74 68 69 73 29 29 3b 0d 0a 20 20 20 20 20 20 20 this));..
5340: 20 6c 6f 67 67 65 72 2e 6f 6e 63 6c 65 61 72 2e logger.onclear.
5350: 61 64 64 4c 69 73 74 65 6e 65 72 28 4c 6f 67 34 addListener(Log4
5360: 6a 73 2e 62 69 6e 64 28 74 68 69 73 2e 64 6f 43 js.bind(this.doC
5370: 6c 65 61 72 2c 20 74 68 69 73 29 29 3b 0d 0a 20 lear, this));..
5380: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 74 68 69 .. thi
5390: 73 2e 6c 6f 67 67 65 72 20 3d 20 6c 6f 67 67 65 s.logger = logge
53a0: 72 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 3b 0d 0a 0d r;.. }..};...
53b0: 0a 2f 2a 2a 0d 0a 2a 20 49 6e 74 65 72 66 61 63 ./**..* Interfac
53c0: 65 20 66 6f 72 20 4c 61 79 6f 75 74 73 2e 0d 0a e for Layouts...
53d0: 2a 20 55 73 65 20 74 68 69 73 20 4c 61 79 6f 75 * Use this Layou
53e0: 74 20 61 73 20 22 69 6e 74 65 72 66 61 63 65 22 t as "interface"
53f0: 20 66 6f 72 20 6f 74 68 65 72 20 4c 61 79 6f 75 for other Layou
5400: 74 73 2e 20 49 74 20 69 73 20 64 6f 69 6e 67 20 ts. It is doing
5410: 6e 6f 74 68 69 6e 67 2e 0d 0a 2a 0d 0a 2a 20 40 nothing...*..* @
5420: 63 6f 6e 73 74 72 75 63 74 6f 72 0d 0a 2a 20 40 constructor..* @
5430: 61 75 74 68 6f 72 20 53 74 65 70 68 61 6e 20 53 author Stephan S
5440: 74 72 69 74 74 6d 61 74 74 65 72 0d 0a 2a 2f 0d trittmatter..*/.
5450: 0a 4c 6f 67 34 6a 73 2e 4c 61 79 6f 75 74 20 3d .Log4js.Layout =
5460: 20 66 75 6e 63 74 69 6f 6e 28 29 7b 72 65 74 75 function(){retu
5470: 72 6e 3b 7d 3b 0d 0a 4c 6f 67 34 6a 73 2e 4c 61 rn;};..Log4js.La
5480: 79 6f 75 74 2e 70 72 6f 74 6f 74 79 70 65 20 3d yout.prototype =
5490: 20 7b 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 {.. /** ..
54a0: 20 20 2a 20 49 6d 70 6c 65 6d 65 6e 74 20 74 68 * Implement th
54b0: 69 73 20 6d 65 74 68 6f 64 20 74 6f 20 63 72 65 is method to cre
54c0: 61 74 65 20 79 6f 75 72 20 6f 77 6e 20 6c 61 79 ate your own lay
54d0: 6f 75 74 20 66 6f 72 6d 61 74 2e 0d 0a 20 20 20 out format...
54e0: 20 2a 20 40 70 61 72 61 6d 20 7b 4c 6f 67 34 6a * @param {Log4j
54f0: 73 2e 4c 6f 67 67 69 6e 67 45 76 65 6e 74 7d 20 s.LoggingEvent}
5500: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 20 6c 6f 67 loggingEvent log
5510: 67 69 6e 67 45 76 65 6e 74 20 74 6f 20 66 6f 72 gingEvent to for
5520: 6d 61 74 0d 0a 20 20 20 20 2a 20 40 72 65 74 75 mat.. * @retu
5530: 72 6e 20 66 6f 72 6d 61 74 74 65 64 20 53 74 72 rn formatted Str
5540: 69 6e 67 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 ing.. * @type
5550: 20 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d String.. */.
5560: 0a 20 20 20 20 66 6f 72 6d 61 74 3a 20 66 75 6e . format: fun
5570: 63 74 69 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 65 ction(loggingEve
5580: 6e 74 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 nt) {.. r
5590: 65 74 75 72 6e 20 22 22 3b 0d 0a 20 20 20 20 7d eturn "";.. }
55a0: 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 ,.. /** ..
55b0: 20 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 63 * Returns the c
55c0: 6f 6e 74 65 6e 74 20 74 79 70 65 20 6f 75 74 70 ontent type outp
55d0: 75 74 20 62 79 20 74 68 69 73 20 6c 61 79 6f 75 ut by this layou
55e0: 74 2e 20 0d 0a 20 20 20 20 2a 20 40 72 65 74 75 t. .. * @retu
55f0: 72 6e 20 54 68 65 20 62 61 73 65 20 63 6c 61 73 rn The base clas
5600: 73 20 72 65 74 75 72 6e 73 20 22 74 65 78 74 2f s returns "text/
5610: 70 6c 61 69 6e 22 2e 0d 0a 20 20 20 20 2a 20 40 plain"... * @
5620: 74 79 70 65 20 53 74 72 69 6e 67 0d 0a 20 20 20 type String..
5630: 20 2a 2f 0d 0a 20 20 20 20 67 65 74 43 6f 6e 74 */.. getCont
5640: 65 6e 74 54 79 70 65 3a 20 66 75 6e 63 74 69 6f entType: functio
5650: 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 n() {.. r
5660: 65 74 75 72 6e 20 22 74 65 78 74 2f 70 6c 61 69 eturn "text/plai
5670: 6e 22 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 n";.. },..
5680: 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 40 72 65 /** .. * @re
5690: 74 75 72 6e 20 52 65 74 75 72 6e 73 20 74 68 65 turn Returns the
56a0: 20 68 65 61 64 65 72 20 66 6f 72 20 74 68 65 20 header for the
56b0: 6c 61 79 6f 75 74 20 66 6f 72 6d 61 74 2e 20 54 layout format. T
56c0: 68 65 20 62 61 73 65 20 63 6c 61 73 73 20 72 65 he base class re
56d0: 74 75 72 6e 73 20 6e 75 6c 6c 2e 0d 0a 20 20 20 turns null...
56e0: 20 2a 20 40 74 79 70 65 20 53 74 72 69 6e 67 0d * @type String.
56f0: 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 67 65 74 . */.. get
5700: 48 65 61 64 65 72 3a 20 66 75 6e 63 74 69 6f 6e Header: function
5710: 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 () {.. re
5720: 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 turn null;..
5730: 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 },.. /** ..
5740: 20 20 2a 20 40 72 65 74 75 72 6e 20 52 65 74 75 * @return Retu
5750: 72 6e 73 20 74 68 65 20 66 6f 6f 74 65 72 20 66 rns the footer f
5760: 6f 72 20 74 68 65 20 6c 61 79 6f 75 74 20 66 6f or the layout fo
5770: 72 6d 61 74 2e 20 54 68 65 20 62 61 73 65 20 63 rmat. The base c
5780: 6c 61 73 73 20 72 65 74 75 72 6e 73 20 6e 75 6c lass returns nul
5790: 6c 2e 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 l... * @type
57a0: 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a String.. */..
57b0: 20 20 20 20 67 65 74 46 6f 6f 74 65 72 3a 20 66 getFooter: f
57c0: 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 unction() {..
57d0: 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c return null
57e0: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d ;.. },.. .
57f0: 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 . /**.. *
5800: 40 72 65 74 75 72 6e 20 53 65 70 61 72 61 74 6f @return Separato
5810: 72 20 62 65 74 77 65 65 6e 20 65 76 65 6e 74 73 r between events
5820: 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 53 74 .. * @type St
5830: 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 ring.. */..
5840: 20 20 67 65 74 53 65 70 61 72 61 74 6f 72 3a 20 getSeparator:
5850: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 function() {..
5860: 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 22 3b return "";
5870: 0d 0a 20 20 20 20 7d 0d 0a 7d 3b 0d 0a 0d 0a 2f .. }..};..../
5880: 2a 2a 0d 0a 2a 20 43 6f 6e 73 6f 6c 65 20 41 70 **..* Console Ap
5890: 70 65 6e 64 65 72 20 77 72 69 74 65 73 20 74 68 pender writes th
58a0: 65 20 6c 6f 67 73 20 74 6f 20 61 20 63 6f 6e 73 e logs to a cons
58b0: 6f 6c 65 2e 20 20 49 66 20 22 69 6e 6c 69 6e 65 ole. If "inline
58c0: 22 20 69 73 0d 0a 2a 20 73 65 74 20 74 6f 20 22 " is..* set to "
58d0: 66 61 6c 73 65 22 20 74 68 65 20 63 6f 6e 73 6f false" the conso
58e0: 6c 65 20 6c 61 75 6e 63 68 65 73 20 69 6e 20 61 le launches in a
58f0: 6e 6f 74 68 65 72 20 77 69 6e 64 6f 77 20 6f 74 nother window ot
5900: 68 65 72 77 69 73 65 0d 0a 2a 20 74 68 65 20 77 herwise..* the w
5910: 69 6e 64 6f 77 20 69 73 20 69 6e 6c 69 6e 65 20 indow is inline
5920: 6f 6e 20 74 68 65 20 70 61 67 65 20 61 6e 64 20 on the page and
5930: 74 6f 67 67 6c 65 64 20 6f 6e 20 61 6e 64 20 6f toggled on and o
5940: 66 66 20 77 69 74 68 20 22 41 6c 74 2d 44 22 2e ff with "Alt-D".
5950: 0d 0a 2a 20 4e 6f 74 65 3a 20 41 74 20 46 69 72 ..* Note: At Fir
5960: 65 46 6f 78 20 26 67 62 3b 20 32 2e 30 20 74 68 eFox &gb; 2.0 th
5970: 65 20 6b 65 79 73 74 72 6f 6b 65 20 69 73 20 6c e keystroke is l
5980: 69 74 74 6c 65 20 64 69 66 66 65 72 65 6e 74 20 ittle different
5990: 6e 6f 77 3a 20 22 53 48 49 46 54 2b 41 4c 54 2b now: "SHIFT+ALT+
59a0: 44 22 2e 0d 0a 2a 0d 0a 2a 20 40 63 6f 6e 73 74 D"...*..* @const
59b0: 72 75 63 74 6f 72 0d 0a 2a 20 40 65 78 74 65 6e ructor..* @exten
59c0: 64 73 20 4c 6f 67 34 6a 73 2e 41 70 70 65 6e 64 ds Log4js.Append
59d0: 65 72 0d 0a 2a 20 40 70 61 72 61 6d 20 7b 62 6f er..* @param {bo
59e0: 6f 6c 65 61 6e 7d 20 69 73 49 6e 6c 69 6e 65 20 olean} isInline
59f0: 62 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 20 74 68 boolean value th
5a00: 61 74 20 69 6e 64 69 63 61 74 65 73 20 77 68 65 at indicates whe
5a10: 74 68 65 72 20 74 68 65 20 63 6f 6e 73 6f 6c 65 ther the console
5a20: 20 62 65 20 70 6c 61 63 65 64 20 69 6e 6c 69 6e be placed inlin
5a30: 65 2c 20 64 65 66 61 75 6c 74 20 69 73 20 74 6f e, default is to
5a40: 20 6c 61 75 6e 63 68 20 69 6e 20 6e 65 77 20 77 launch in new w
5a50: 69 6e 64 6f 77 0d 0a 2a 0d 0a 2a 20 40 61 75 74 indow..*..* @aut
5a60: 68 6f 72 20 43 6f 72 65 79 20 4a 6f 68 6e 73 6f hor Corey Johnso
5a70: 6e 20 2d 20 6f 72 69 67 69 6e 61 6c 20 63 6f 6e n - original con
5a80: 73 6f 6c 65 20 63 6f 64 65 20 69 6e 20 4c 75 6d sole code in Lum
5a90: 62 65 72 6a 61 63 6b 20 28 68 74 74 70 3a 2f 2f berjack (http://
5aa0: 67 6c 65 65 70 67 6c 6f 70 2e 63 6f 6d 2f 6a 61 gleepglop.com/ja
5ab0: 76 61 73 63 72 69 70 74 73 2f 6c 6f 67 67 65 72 vascripts/logger
5ac0: 2f 29 0d 0a 2a 20 40 61 75 74 68 6f 72 20 53 65 /)..* @author Se
5ad0: 74 68 20 43 68 69 73 61 6d 6f 72 65 20 2d 20 61 th Chisamore - a
5ae0: 64 61 70 74 65 64 20 66 6f 72 20 75 73 65 20 61 dapted for use a
5af0: 73 20 61 20 6c 6f 67 34 6a 73 20 61 70 70 65 6e s a log4js appen
5b00: 64 65 72 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e der..*/..Log4js.
5b10: 43 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 65 72 20 ConsoleAppender
5b20: 3d 20 66 75 6e 63 74 69 6f 6e 28 69 73 49 6e 6c = function(isInl
5b30: 69 6e 65 29 20 7b 0d 0a 20 20 20 20 0d 0a 20 20 ine) {.. ..
5b40: 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 40 74 79 /**.. * @ty
5b50: 70 65 20 4c 6f 67 34 6a 73 2e 4c 61 79 6f 75 74 pe Log4js.Layout
5b60: 0d 0a 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 .. * @private
5b70: 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 68 .. */.. th
5b80: 69 73 2e 6c 61 79 6f 75 74 20 3d 20 6e 65 77 20 is.layout = new
5b90: 4c 6f 67 34 6a 73 2e 50 61 74 74 65 72 6e 4c 61 Log4js.PatternLa
5ba0: 79 6f 75 74 28 4c 6f 67 34 6a 73 2e 50 61 74 74 yout(Log4js.Patt
5bb0: 65 72 6e 4c 61 79 6f 75 74 2e 54 54 43 43 5f 43 ernLayout.TTCC_C
5bc0: 4f 4e 56 45 52 53 49 4f 4e 5f 50 41 54 54 45 52 ONVERSION_PATTER
5bd0: 4e 29 3b 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 N);.. /**..
5be0: 20 20 2a 20 40 74 79 70 65 20 62 6f 6f 6c 65 61 * @type boolea
5bf0: 6e 0d 0a 20 20 20 20 2a 20 40 70 72 69 76 61 74 n.. * @privat
5c00: 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 e.. */.. t
5c10: 68 69 73 2e 69 6e 6c 69 6e 65 20 3d 20 69 73 49 his.inline = isI
5c20: 6e 6c 69 6e 65 3b 0d 0a 0d 0a 20 20 20 20 2f 2a nline;.... /*
5c30: 2a 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 53 *.. * @type S
5c40: 74 72 69 6e 67 0d 0a 20 20 20 20 2a 20 40 70 72 tring.. * @pr
5c50: 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 ivate.. */..
5c60: 20 20 20 74 68 69 73 2e 61 63 63 65 73 73 6b 65 this.accesske
5c70: 79 20 3d 20 22 64 22 3b 0d 0a 20 20 20 20 0d 0a y = "d";.. ..
5c80: 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 40 /**.. * @
5c90: 70 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d private.. */.
5ca0: 0a 20 20 20 20 74 68 69 73 2e 74 61 67 50 61 74 . this.tagPat
5cb0: 74 65 72 6e 20 3d 20 6e 75 6c 6c 3b 0d 0a 20 20 tern = null;..
5cc0: 20 20 0d 0a 20 20 20 20 74 68 69 73 2e 63 6f 6d .. this.com
5cd0: 6d 61 6e 64 48 69 73 74 6f 72 79 20 3d 20 5b 5d mandHistory = []
5ce0: 3b 0d 0a 20 20 20 20 74 68 69 73 2e 63 6f 6d 6d ;.. this.comm
5cf0: 61 6e 64 49 6e 64 65 78 20 3d 20 30 3b 0d 0a 20 andIndex = 0;..
5d00: 20 20 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 .. /**..
5d10: 20 20 2a 20 74 72 75 65 20 69 66 20 70 6f 70 75 * true if popu
5d20: 70 20 69 73 20 62 6c 6f 63 6b 65 64 2e 0d 0a 20 p is blocked...
5d30: 20 20 20 2a 2f 0d 0a 20 20 20 20 74 68 69 73 2e */.. this.
5d40: 70 6f 70 75 70 42 6c 6f 63 6b 65 72 20 3d 20 66 popupBlocker = f
5d50: 61 6c 73 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 alse;.. ..
5d60: 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 63 75 72 72 /**.. * curr
5d70: 65 6e 74 20 6f 75 74 70 75 74 20 64 69 76 2d 65 ent output div-e
5d80: 6c 65 6d 65 6e 74 2e 0d 0a 20 20 20 20 2a 2f 0d lement... */.
5d90: 0a 20 20 20 20 74 68 69 73 2e 6f 75 74 70 75 74 . this.output
5da0: 45 6c 65 6d 65 6e 74 20 3d 20 6e 75 6c 6c 3b 0d Element = null;.
5db0: 0a 20 20 20 20 0d 0a 20 20 20 20 74 68 69 73 2e . .. this.
5dc0: 64 6f 63 52 65 66 65 72 65 6e 63 65 20 3d 20 6e docReference = n
5dd0: 75 6c 6c 3b 0d 0a 20 20 20 20 74 68 69 73 2e 77 ull;.. this.w
5de0: 69 6e 52 65 66 65 72 65 6e 63 65 20 3d 20 6e 75 inReference = nu
5df0: 6c 6c 3b 09 09 0d 0a 20 20 20 20 20 20 20 20 0d ll;.... .
5e00: 0a 20 20 20 20 69 66 28 74 68 69 73 2e 69 6e 6c . if(this.inl
5e10: 69 6e 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 ine) {..
5e20: 4c 6f 67 34 6a 73 2e 61 74 74 61 63 68 45 76 65 Log4js.attachEve
5e30: 6e 74 28 77 69 6e 64 6f 77 2c 20 27 6c 6f 61 64 nt(window, 'load
5e40: 27 2c 20 4c 6f 67 34 6a 73 2e 62 69 6e 64 28 74 ', Log4js.bind(t
5e50: 68 69 73 2e 69 6e 69 74 69 61 6c 69 7a 65 2c 20 his.initialize,
5e60: 74 68 69 73 29 29 3b 0d 0a 20 20 20 20 7d 0d 0a this));.. }..
5e70: 7d 3b 0d 0a 0d 0a 4c 6f 67 34 6a 73 2e 43 6f 6e };....Log4js.Con
5e80: 73 6f 6c 65 41 70 70 65 6e 64 65 72 2e 70 72 6f soleAppender.pro
5e90: 74 6f 74 79 70 65 20 3d 20 4c 6f 67 34 6a 73 2e totype = Log4js.
5ea0: 65 78 74 65 6e 64 28 6e 65 77 20 4c 6f 67 34 6a extend(new Log4j
5eb0: 73 2e 41 70 70 65 6e 64 65 72 28 29 2c 20 7b 20 s.Appender(), {
5ec0: 20 0d 0a 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 .... /**..
5ed0: 20 20 2a 20 53 65 74 20 74 68 65 20 61 63 63 65 * Set the acce
5ee0: 73 73 20 6b 65 79 20 74 6f 20 73 68 6f 77 2f 68 ss key to show/h
5ef0: 69 64 65 20 74 68 65 20 69 6e 6c 69 6e 65 20 63 ide the inline c
5f00: 6f 6e 73 6f 6c 65 20 28 64 65 66 61 75 6c 74 20 onsole (default
5f10: 26 71 75 6f 74 65 3b 64 26 71 75 6f 74 65 3b 29 "e;d"e;)
5f20: 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6b .. * @param k
5f30: 65 79 20 61 63 63 65 73 73 20 6b 65 79 20 74 6f ey access key to
5f40: 20 73 68 6f 77 2f 68 69 64 65 20 74 68 65 20 69 show/hide the i
5f50: 6e 6c 69 6e 65 20 63 6f 6e 73 6f 6c 65 0d 0a 20 nline console..
5f60: 20 20 20 2a 2f 09 0d 0a 20 20 20 20 73 65 74 41 */... setA
5f70: 63 63 65 73 73 4b 65 79 20 3a 20 66 75 6e 63 74 ccessKey : funct
5f80: 69 6f 6e 28 6b 65 79 29 20 7b 0d 0a 20 20 20 20 ion(key) {..
5f90: 20 20 20 20 74 68 69 73 2e 61 63 63 65 73 73 6b this.accessk
5fa0: 65 79 20 3d 20 6b 65 79 3b 0d 0a 20 20 20 20 7d ey = key;.. }
5fb0: 2c 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a ,.. .. /**
5fc0: 0d 0a 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 .. * @private
5fd0: 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 69 6e .. */.. in
5fe0: 69 74 69 61 6c 69 7a 65 20 3a 20 66 75 6e 63 74 itialize : funct
5ff0: 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 ion() {..
6000: 20 0d 0a 20 20 20 20 20 20 20 20 69 66 28 21 74 .. if(!t
6010: 68 69 73 2e 69 6e 6c 69 6e 65 29 20 7b 0d 0a 20 his.inline) {..
6020: 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 64 var d
6030: 6f 63 20 3d 20 6e 75 6c 6c 3b 09 0d 0a 20 20 20 oc = null;...
6040: 20 20 20 20 20 20 20 20 20 76 61 72 20 77 69 6e var win
6050: 20 3d 20 6e 75 6c 6c 3b 0d 0a 20 20 20 20 20 20 = null;..
6060: 20 20 20 20 20 20 77 69 6e 64 6f 77 2e 74 6f 70 window.top
6070: 2e 63 6f 6e 73 6f 6c 65 57 69 6e 64 6f 77 20 3d .consoleWindow =
6080: 20 77 69 6e 64 6f 77 2e 6f 70 65 6e 28 22 22 2c window.open("",
6090: 20 74 68 69 73 2e 6c 6f 67 67 65 72 2e 63 61 74 this.logger.cat
60a0: 65 67 6f 72 79 2c 20 0d 0a 20 20 20 20 20 20 20 egory, ..
60b0: 20 20 20 20 20 20 20 20 20 22 6c 65 66 74 3d 30 "left=0
60c0: 2c 74 6f 70 3d 30 2c 77 69 64 74 68 3d 37 30 30 ,top=0,width=700
60d0: 2c 68 65 69 67 68 74 3d 37 30 30 2c 73 63 72 6f ,height=700,scro
60e0: 6c 6c 62 61 72 73 3d 6e 6f 2c 73 74 61 74 75 73 llbars=no,status
60f0: 3d 6e 6f 2c 72 65 73 69 7a 61 62 6c 65 3d 79 65 =no,resizable=ye
6100: 73 3b 74 6f 6f 6c 62 61 72 3d 6e 6f 22 29 3b 0d s;toolbar=no");.
6110: 0a 20 20 20 20 20 20 20 20 20 20 20 20 77 69 6e . win
6120: 64 6f 77 2e 74 6f 70 2e 63 6f 6e 73 6f 6c 65 57 dow.top.consoleW
6130: 69 6e 64 6f 77 2e 6f 70 65 6e 65 72 20 3d 20 73 indow.opener = s
6140: 65 6c 66 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 elf;..
6150: 20 20 77 69 6e 20 3d 20 77 69 6e 64 6f 77 2e 74 win = window.t
6160: 6f 70 2e 63 6f 6e 73 6f 6c 65 57 69 6e 64 6f 77 op.consoleWindow
6170: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
6180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
6190: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ..
61a0: 20 69 66 20 28 21 77 69 6e 29 20 7b 20 0d 0a 20 if (!win) { ..
61b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
61c0: 68 69 73 2e 70 6f 70 75 70 42 6c 6f 63 6b 65 72 his.popupBlocker
61d0: 3d 74 72 75 65 3b 20 0d 0a 20 20 20 20 20 20 20 =true; ..
61e0: 20 20 20 20 20 20 20 20 20 61 6c 65 72 74 28 22 alert("
61f0: 50 6f 70 75 70 20 77 69 6e 64 6f 77 20 6d 61 6e Popup window man
6200: 61 67 65 72 20 62 6c 6f 63 6b 69 6e 67 20 74 68 ager blocking th
6210: 65 20 4c 6f 67 34 6a 73 20 70 6f 70 75 70 20 77 e Log4js popup w
6220: 69 6e 64 6f 77 20 74 6f 20 62 65 64 69 73 70 6c indow to bedispl
6230: 61 79 65 64 2e 5c 6e 5c 6e 22 20 0d 0a 20 20 20 ayed.\n\n" ..
6240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
6250: 20 2b 20 22 50 6c 65 61 73 65 20 64 69 73 61 62 + "Please disab
6260: 6c 65 64 20 74 68 69 73 20 74 6f 20 70 72 6f 70 led this to prop
6270: 65 72 6c 79 20 73 65 65 20 6c 6f 67 67 65 64 20 erly see logged
6280: 65 76 65 6e 74 73 2e 22 29 3b 20 20 0d 0a 20 20 events."); ..
6290: 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 } else
62a0: 20 7b 09 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 {.....
62b0: 20 20 20 20 20 20 20 64 6f 63 20 3d 20 77 69 6e doc = win
62c0: 2e 64 6f 63 75 6d 65 6e 74 3b 0d 0a 20 20 20 20 .document;..
62d0: 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 63 2e doc.
62e0: 6f 70 65 6e 28 29 3b 0d 0a 20 20 20 20 20 20 20 open();..
62f0: 20 20 20 20 20 20 20 20 20 64 6f 63 2e 77 72 69 doc.wri
6300: 74 65 28 22 3c 21 44 4f 43 54 59 50 45 20 68 74 te("<!DOCTYPE ht
6310: 6d 6c 20 50 55 42 4c 49 43 20 2d 2f 2f 57 33 43 ml PUBLIC -//W3C
6320: 2f 2f 44 54 44 20 58 48 54 4d 4c 20 31 2e 30 20 //DTD XHTML 1.0
6330: 54 72 61 6e 73 69 74 69 6f 6e 61 6c 2f 2f 45 4e Transitional//EN
6340: 20 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ");..
6350: 20 20 20 20 20 20 64 6f 63 2e 77 72 69 74 65 28 doc.write(
6360: 22 20 20 68 74 74 70 3a 2f 2f 77 77 77 2e 77 33 " http://www.w3
6370: 2e 6f 72 67 2f 54 52 2f 78 68 74 6d 6c 31 2f 44 .org/TR/xhtml1/D
6380: 54 44 2f 78 68 74 6d 6c 31 2d 74 72 61 6e 73 69 TD/xhtml1-transi
6390: 74 69 6f 6e 61 6c 2e 64 74 64 3e 5c 6e 5c 6e 22 tional.dtd>\n\n"
63a0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 );..
63b0: 20 20 20 20 64 6f 63 2e 77 72 69 74 65 28 22 3c doc.write("<
63c0: 68 74 6d 6c 3e 3c 68 65 61 64 3e 3c 74 69 74 6c html><head><titl
63d0: 65 3e 4c 6f 67 34 6a 73 20 2d 20 22 20 2b 20 74 e>Log4js - " + t
63e0: 68 69 73 2e 6c 6f 67 67 65 72 2e 63 61 74 65 67 his.logger.categ
63f0: 6f 72 79 20 2b 20 22 3c 2f 74 69 74 6c 65 3e 5c ory + "</title>\
6400: 6e 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 n");..
6410: 20 20 20 20 20 20 64 6f 63 2e 77 72 69 74 65 28 doc.write(
6420: 22 3c 2f 68 65 61 64 3e 3c 62 6f 64 79 20 73 74 "</head><body st
6430: 79 6c 65 3d 5c 22 62 61 63 6b 67 72 6f 75 6e 64 yle=\"background
6440: 2d 63 6f 6c 6f 72 3a 64 61 72 6b 67 72 61 79 5c -color:darkgray\
6450: 22 3e 3c 2f 62 6f 64 79 3e 5c 6e 22 29 3b 0d 0a "></body>\n");..
6460: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
6470: 77 69 6e 2e 62 6c 75 72 28 29 3b 0d 0a 20 20 20 win.blur();..
6480: 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 6e win
6490: 2e 66 6f 63 75 73 28 29 3b 0d 0a 20 20 20 20 20 .focus();..
64a0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 }..
64b0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
64c0: 20 20 20 20 74 68 69 73 2e 64 6f 63 52 65 66 65 this.docRefe
64d0: 72 65 6e 63 65 20 3d 20 64 6f 63 3b 0d 0a 20 20 rence = doc;..
64e0: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 77 this.w
64f0: 69 6e 52 65 66 65 72 65 6e 63 65 20 3d 20 77 69 inReference = wi
6500: 6e 3b 0d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c n;.. } el
6510: 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 se {..
6520: 20 20 74 68 69 73 2e 64 6f 63 52 65 66 65 72 65 this.docRefere
6530: 6e 63 65 20 3d 20 64 6f 63 75 6d 65 6e 74 3b 0d nce = document;.
6540: 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
6550: 73 2e 77 69 6e 52 65 66 65 72 65 6e 63 65 20 3d s.winReference =
6560: 20 77 69 6e 64 6f 77 3b 09 09 09 0d 0a 20 20 20 window;.....
6570: 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 }..
6580: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 ..
6590: 20 20 74 68 69 73 2e 6f 75 74 70 75 74 43 6f 75 this.outputCou
65a0: 6e 74 20 3d 20 30 3b 0d 0a 20 20 20 20 20 20 20 nt = 0;..
65b0: 20 74 68 69 73 2e 74 61 67 50 61 74 74 65 72 6e this.tagPattern
65c0: 20 3d 20 22 2e 2a 22 3b 0d 0a 20 20 20 20 20 20 = ".*";..
65d0: 20 20 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 49 .. // I
65e0: 20 68 61 74 65 20 77 72 69 74 69 6e 67 20 6a 61 hate writing ja
65f0: 76 61 73 63 72 69 70 74 20 69 6e 20 48 54 4d 4c vascript in HTML
6600: 2e 2e 2e 20 62 75 74 20 77 68 61 74 27 73 20 61 ... but what's a
6610: 20 62 65 74 74 65 72 20 61 6c 74 65 72 6e 61 74 better alternat
6620: 69 76 65 0d 0a 20 20 20 20 20 20 20 20 74 68 69 ive.. thi
6630: 73 2e 6c 6f 67 45 6c 65 6d 65 6e 74 20 3d 20 74 s.logElement = t
6640: 68 69 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 65 his.docReference
6650: 2e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 .createElement('
6660: 64 69 76 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 div');..
6670: 74 68 69 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 this.docReferenc
6680: 65 2e 62 6f 64 79 2e 61 70 70 65 6e 64 43 68 69 e.body.appendChi
6690: 6c 64 28 74 68 69 73 2e 6c 6f 67 45 6c 65 6d 65 ld(this.logEleme
66a0: 6e 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 nt);.. th
66b0: 69 73 2e 6c 6f 67 45 6c 65 6d 65 6e 74 2e 73 74 is.logElement.st
66c0: 79 6c 65 2e 64 69 73 70 6c 61 79 20 3d 20 27 6e yle.display = 'n
66d0: 6f 6e 65 27 3b 0d 0a 20 20 20 20 20 20 20 20 0d one';.. .
66e0: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f . this.lo
66f0: 67 45 6c 65 6d 65 6e 74 2e 73 74 79 6c 65 2e 70 gElement.style.p
6700: 6f 73 69 74 69 6f 6e 20 3d 20 22 61 62 73 6f 6c osition = "absol
6710: 75 74 65 22 3b 0d 0a 20 20 20 20 20 20 20 20 74 ute";.. t
6720: 68 69 73 2e 6c 6f 67 45 6c 65 6d 65 6e 74 2e 73 his.logElement.s
6730: 74 79 6c 65 2e 6c 65 66 74 20 3d 20 27 30 70 78 tyle.left = '0px
6740: 27 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 ';.. this
6750: 2e 6c 6f 67 45 6c 65 6d 65 6e 74 2e 73 74 79 6c .logElement.styl
6760: 65 2e 77 69 64 74 68 20 3d 20 27 31 30 30 25 27 e.width = '100%'
6770: 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ;.. ..
6780: 20 74 68 69 73 2e 6c 6f 67 45 6c 65 6d 65 6e 74 this.logElement
6790: 2e 73 74 79 6c 65 2e 74 65 78 74 41 6c 69 67 6e .style.textAlign
67a0: 20 3d 20 22 6c 65 66 74 22 3b 0d 0a 20 20 20 20 = "left";..
67b0: 20 20 20 20 74 68 69 73 2e 6c 6f 67 45 6c 65 6d this.logElem
67c0: 65 6e 74 2e 73 74 79 6c 65 2e 66 6f 6e 74 46 61 ent.style.fontFa
67d0: 6d 69 6c 79 20 3d 20 22 6c 75 63 69 64 61 20 63 mily = "lucida c
67e0: 6f 6e 73 6f 6c 65 22 3b 0d 0a 20 20 20 20 20 20 onsole";..
67f0: 20 20 74 68 69 73 2e 6c 6f 67 45 6c 65 6d 65 6e this.logElemen
6800: 74 2e 73 74 79 6c 65 2e 66 6f 6e 74 53 69 7a 65 t.style.fontSize
6810: 20 3d 20 22 31 30 30 25 22 3b 0d 0a 20 20 20 20 = "100%";..
6820: 20 20 20 20 74 68 69 73 2e 6c 6f 67 45 6c 65 6d this.logElem
6830: 65 6e 74 2e 73 74 79 6c 65 2e 62 61 63 6b 67 72 ent.style.backgr
6840: 6f 75 6e 64 43 6f 6c 6f 72 20 3d 20 27 64 61 72 oundColor = 'dar
6850: 6b 67 72 61 79 27 3b 20 20 20 20 20 20 0d 0a 20 kgray'; ..
6860: 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 45 this.logE
6870: 6c 65 6d 65 6e 74 2e 73 74 79 6c 65 2e 6f 70 61 lement.style.opa
6880: 63 69 74 79 20 3d 20 30 2e 39 3b 0d 0a 20 20 20 city = 0.9;..
6890: 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 45 6c 65 this.logEle
68a0: 6d 65 6e 74 2e 73 74 79 6c 65 2e 7a 49 6e 64 65 ment.style.zInde
68b0: 78 20 3d 20 32 30 30 30 3b 20 0d 0a 20 20 20 20 x = 2000; ..
68c0: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 41 64 64 .. // Add
68d0: 20 74 6f 6f 6c 62 61 72 45 6c 65 6d 65 6e 74 0d toolbarElement.
68e0: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 6f . this.to
68f0: 6f 6c 62 61 72 45 6c 65 6d 65 6e 74 20 3d 20 74 olbarElement = t
6900: 68 69 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 65 his.docReference
6910: 2e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 .createElement('
6920: 64 69 76 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 div');..
6930: 74 68 69 73 2e 6c 6f 67 45 6c 65 6d 65 6e 74 2e this.logElement.
6940: 61 70 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73 appendChild(this
6950: 2e 74 6f 6f 6c 62 61 72 45 6c 65 6d 65 6e 74 29 .toolbarElement)
6960: 3b 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ; ..
6970: 74 68 69 73 2e 74 6f 6f 6c 62 61 72 45 6c 65 6d this.toolbarElem
6980: 65 6e 74 2e 73 74 79 6c 65 2e 70 61 64 64 69 6e ent.style.paddin
6990: 67 20 3d 20 22 30 20 30 20 30 20 32 70 78 22 3b g = "0 0 0 2px";
69a0: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 .. ..
69b0: 2f 2f 20 41 64 64 20 62 75 74 74 6f 6e 73 20 20 // Add buttons
69c0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
69d0: 74 68 69 73 2e 62 75 74 74 6f 6e 73 43 6f 6e 74 this.buttonsCont
69e0: 61 69 6e 65 72 45 6c 65 6d 65 6e 74 20 3d 20 74 ainerElement = t
69f0: 68 69 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 65 his.docReference
6a00: 2e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 .createElement('
6a10: 73 70 61 6e 27 29 3b 0d 0a 20 20 20 20 20 20 20 span');..
6a20: 20 74 68 69 73 2e 74 6f 6f 6c 62 61 72 45 6c 65 this.toolbarEle
6a30: 6d 65 6e 74 2e 61 70 70 65 6e 64 43 68 69 6c 64 ment.appendChild
6a40: 28 74 68 69 73 2e 62 75 74 74 6f 6e 73 43 6f 6e (this.buttonsCon
6a50: 74 61 69 6e 65 72 45 6c 65 6d 65 6e 74 29 3b 20 tainerElement);
6a60: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 .. ..
6a70: 69 66 28 74 68 69 73 2e 69 6e 6c 69 6e 65 29 20 if(this.inline)
6a80: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 {.. v
6a90: 61 72 20 63 6c 6f 73 65 42 75 74 74 6f 6e 20 3d ar closeButton =
6aa0: 20 74 68 69 73 2e 64 6f 63 52 65 66 65 72 65 6e this.docReferen
6ab0: 63 65 2e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 ce.createElement
6ac0: 28 27 62 75 74 74 6f 6e 27 29 3b 0d 0a 20 20 20 ('button');..
6ad0: 20 20 20 20 20 20 20 20 20 63 6c 6f 73 65 42 75 closeBu
6ae0: 74 74 6f 6e 2e 73 74 79 6c 65 2e 63 73 73 46 6c tton.style.cssFl
6af0: 6f 61 74 20 3d 20 22 72 69 67 68 74 22 3b 0d 0a oat = "right";..
6b00: 20 20 20 20 20 20 20 20 20 20 20 20 63 6c 6f 73 clos
6b10: 65 42 75 74 74 6f 6e 2e 73 74 79 6c 65 2e 73 74 eButton.style.st
6b20: 79 6c 65 46 6c 6f 61 74 20 3d 20 22 72 69 67 68 yleFloat = "righ
6b30: 74 22 3b 20 2f 2f 20 49 45 20 64 6f 6d 20 62 75 t"; // IE dom bu
6b40: 67 2e 2e 2e 64 6f 65 73 6e 27 74 20 75 6e 64 65 g...doesn't unde
6b50: 72 73 74 61 6e 64 20 63 73 73 46 6c 6f 61 74 0d rstand cssFloat.
6b60: 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6c 6f . clo
6b70: 73 65 42 75 74 74 6f 6e 2e 73 74 79 6c 65 2e 63 seButton.style.c
6b80: 6f 6c 6f 72 20 3d 20 22 62 6c 61 63 6b 22 3b 0d olor = "black";.
6b90: 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6c 6f . clo
6ba0: 73 65 42 75 74 74 6f 6e 2e 69 6e 6e 65 72 48 54 seButton.innerHT
6bb0: 4d 4c 20 3d 20 22 63 6c 6f 73 65 22 3b 0d 0a 20 ML = "close";..
6bc0: 20 20 20 20 20 20 20 20 20 20 20 63 6c 6f 73 65 close
6bd0: 42 75 74 74 6f 6e 2e 6f 6e 63 6c 69 63 6b 20 3d Button.onclick =
6be0: 20 4c 6f 67 34 6a 73 2e 62 69 6e 64 28 74 68 69 Log4js.bind(thi
6bf0: 73 2e 74 6f 67 67 6c 65 2c 20 74 68 69 73 29 3b s.toggle, this);
6c00: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 .. th
6c10: 69 73 2e 62 75 74 74 6f 6e 73 43 6f 6e 74 61 69 is.buttonsContai
6c20: 6e 65 72 45 6c 65 6d 65 6e 74 2e 61 70 70 65 6e nerElement.appen
6c30: 64 43 68 69 6c 64 28 63 6c 6f 73 65 42 75 74 74 dChild(closeButt
6c40: 6f 6e 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d on);.. }.
6c50: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 . ..
6c60: 20 20 20 76 61 72 20 63 6c 65 61 72 42 75 74 74 var clearButt
6c70: 6f 6e 20 3d 20 74 68 69 73 2e 64 6f 63 52 65 66 on = this.docRef
6c80: 65 72 65 6e 63 65 2e 63 72 65 61 74 65 45 6c 65 erence.createEle
6c90: 6d 65 6e 74 28 27 62 75 74 74 6f 6e 27 29 3b 0d ment('button');.
6ca0: 0a 20 20 20 20 20 20 20 20 63 6c 65 61 72 42 75 . clearBu
6cb0: 74 74 6f 6e 2e 73 74 79 6c 65 2e 63 73 73 46 6c tton.style.cssFl
6cc0: 6f 61 74 20 3d 20 22 72 69 67 68 74 22 3b 0d 0a oat = "right";..
6cd0: 20 20 20 20 20 20 20 20 63 6c 65 61 72 42 75 74 clearBut
6ce0: 74 6f 6e 2e 73 74 79 6c 65 2e 73 74 79 6c 65 46 ton.style.styleF
6cf0: 6c 6f 61 74 20 3d 20 22 72 69 67 68 74 22 3b 20 loat = "right";
6d00: 2f 2f 20 49 45 20 64 6f 6d 20 62 75 67 2e 2e 2e // IE dom bug...
6d10: 64 6f 65 73 6e 27 74 20 75 6e 64 65 72 73 74 61 doesn't understa
6d20: 6e 64 20 63 73 73 46 6c 6f 61 74 0d 0a 20 20 20 nd cssFloat..
6d30: 20 20 20 20 20 63 6c 65 61 72 42 75 74 74 6f 6e clearButton
6d40: 2e 73 74 79 6c 65 2e 63 6f 6c 6f 72 20 3d 20 22 .style.color = "
6d50: 62 6c 61 63 6b 22 3b 0d 0a 20 20 20 20 20 20 20 black";..
6d60: 20 63 6c 65 61 72 42 75 74 74 6f 6e 2e 69 6e 6e clearButton.inn
6d70: 65 72 48 54 4d 4c 20 3d 20 22 63 6c 65 61 72 22 erHTML = "clear"
6d80: 3b 0d 0a 20 20 20 20 20 20 20 20 63 6c 65 61 72 ;.. clear
6d90: 42 75 74 74 6f 6e 2e 6f 6e 63 6c 69 63 6b 20 3d Button.onclick =
6da0: 20 4c 6f 67 34 6a 73 2e 62 69 6e 64 28 74 68 69 Log4js.bind(thi
6db0: 73 2e 6c 6f 67 67 65 72 2e 63 6c 65 61 72 2c 20 s.logger.clear,
6dc0: 74 68 69 73 2e 6c 6f 67 67 65 72 29 3b 0d 0a 20 this.logger);..
6dd0: 20 20 20 20 20 20 20 74 68 69 73 2e 62 75 74 74 this.butt
6de0: 6f 6e 73 43 6f 6e 74 61 69 6e 65 72 45 6c 65 6d onsContainerElem
6df0: 65 6e 74 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 ent.appendChild(
6e00: 63 6c 65 61 72 42 75 74 74 6f 6e 29 3b 0d 0a 20 clearButton);..
6e10: 20 20 20 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f .... /
6e20: 2f 41 64 64 20 43 61 74 65 67 6f 72 79 4e 61 6d /Add CategoryNam
6e30: 65 20 61 6e 64 20 20 4c 65 76 65 6c 20 46 69 6c e and Level Fil
6e40: 74 65 72 0d 0a 20 20 20 20 20 20 20 20 74 68 69 ter.. thi
6e50: 73 2e 74 61 67 46 69 6c 74 65 72 43 6f 6e 74 61 s.tagFilterConta
6e60: 69 6e 65 72 45 6c 65 6d 65 6e 74 20 3d 20 74 68 inerElement = th
6e70: 69 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 65 2e is.docReference.
6e80: 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 73 createElement('s
6e90: 70 61 6e 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 pan');..
6ea0: 74 68 69 73 2e 74 6f 6f 6c 62 61 72 45 6c 65 6d this.toolbarElem
6eb0: 65 6e 74 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 ent.appendChild(
6ec0: 74 68 69 73 2e 74 61 67 46 69 6c 74 65 72 43 6f this.tagFilterCo
6ed0: 6e 74 61 69 6e 65 72 45 6c 65 6d 65 6e 74 29 3b ntainerElement);
6ee0: 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 74 .. this.t
6ef0: 61 67 46 69 6c 74 65 72 43 6f 6e 74 61 69 6e 65 agFilterContaine
6f00: 72 45 6c 65 6d 65 6e 74 2e 73 74 79 6c 65 2e 63 rElement.style.c
6f10: 73 73 46 6c 6f 61 74 20 3d 20 27 6c 65 66 74 27 ssFloat = 'left'
6f20: 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 ;.. ..
6f30: 20 20 20 20 20 74 68 69 73 2e 74 61 67 46 69 6c this.tagFil
6f40: 74 65 72 43 6f 6e 74 61 69 6e 65 72 45 6c 65 6d terContainerElem
6f50: 65 6e 74 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 ent.appendChild(
6f60: 74 68 69 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 this.docReferenc
6f70: 65 2e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 e.createTextNode
6f80: 28 22 4c 6f 67 34 6a 73 20 2d 20 22 20 2b 20 74 ("Log4js - " + t
6f90: 68 69 73 2e 6c 6f 67 67 65 72 2e 63 61 74 65 67 his.logger.categ
6fa0: 6f 72 79 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 ory));..
6fb0: 74 68 69 73 2e 74 61 67 46 69 6c 74 65 72 43 6f this.tagFilterCo
6fc0: 6e 74 61 69 6e 65 72 45 6c 65 6d 65 6e 74 2e 61 ntainerElement.a
6fd0: 70 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73 2e ppendChild(this.
6fe0: 64 6f 63 52 65 66 65 72 65 6e 63 65 2e 63 72 65 docReference.cre
6ff0: 61 74 65 54 65 78 74 4e 6f 64 65 28 22 20 7c 20 ateTextNode(" |
7000: 4c 65 76 65 6c 20 46 69 6c 74 65 72 3a 20 22 29 Level Filter: ")
7010: 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 );.. ..
7020: 20 20 20 20 20 20 74 68 69 73 2e 74 61 67 46 69 this.tagFi
7030: 6c 74 65 72 45 6c 65 6d 65 6e 74 20 3d 20 74 68 lterElement = th
7040: 69 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 65 2e is.docReference.
7050: 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 69 createElement('i
7060: 6e 70 75 74 27 29 3b 0d 0a 20 20 20 20 20 20 20 nput');..
7070: 20 74 68 69 73 2e 74 61 67 46 69 6c 74 65 72 43 this.tagFilterC
7080: 6f 6e 74 61 69 6e 65 72 45 6c 65 6d 65 6e 74 2e ontainerElement.
7090: 61 70 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73 appendChild(this
70a0: 2e 74 61 67 46 69 6c 74 65 72 45 6c 65 6d 65 6e .tagFilterElemen
70b0: 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 t);.. thi
70c0: 73 2e 74 61 67 46 69 6c 74 65 72 45 6c 65 6d 65 s.tagFilterEleme
70d0: 6e 74 2e 73 74 79 6c 65 2e 77 69 64 74 68 20 3d nt.style.width =
70e0: 20 27 32 30 30 70 78 27 3b 20 20 20 20 20 20 20 '200px';
70f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 ..
7100: 20 20 20 20 20 20 20 74 68 69 73 2e 74 61 67 46 this.tagF
7110: 69 6c 74 65 72 45 6c 65 6d 65 6e 74 2e 76 61 6c ilterElement.val
7120: 75 65 20 3d 20 74 68 69 73 2e 74 61 67 50 61 74 ue = this.tagPat
7130: 74 65 72 6e 3b 20 20 20 20 0d 0a 20 20 20 20 20 tern; ..
7140: 20 20 20 74 68 69 73 2e 74 61 67 46 69 6c 74 65 this.tagFilte
7150: 72 45 6c 65 6d 65 6e 74 2e 73 65 74 41 74 74 72 rElement.setAttr
7160: 69 62 75 74 65 28 27 61 75 74 6f 63 6f 6d 70 6c ibute('autocompl
7170: 65 74 65 27 2c 20 27 6f 66 66 27 29 3b 20 2f 2f ete', 'off'); //
7180: 20 53 6f 20 46 69 72 65 66 6f 78 20 64 6f 65 73 So Firefox does
7190: 6e 27 74 20 66 6c 69 70 20 6f 75 74 0d 0a 20 20 n't flip out..
71a0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
71b0: 4c 6f 67 34 6a 73 2e 61 74 74 61 63 68 45 76 65 Log4js.attachEve
71c0: 6e 74 28 74 68 69 73 2e 74 61 67 46 69 6c 74 65 nt(this.tagFilte
71d0: 72 45 6c 65 6d 65 6e 74 2c 20 27 6b 65 79 75 70 rElement, 'keyup
71e0: 27 2c 20 4c 6f 67 34 6a 73 2e 62 69 6e 64 28 74 ', Log4js.bind(t
71f0: 68 69 73 2e 75 70 64 61 74 65 54 61 67 73 2c 20 his.updateTags,
7200: 74 68 69 73 29 29 3b 0d 0a 20 20 20 20 20 20 20 this));..
7210: 20 4c 6f 67 34 6a 73 2e 61 74 74 61 63 68 45 76 Log4js.attachEv
7220: 65 6e 74 28 74 68 69 73 2e 74 61 67 46 69 6c 74 ent(this.tagFilt
7230: 65 72 45 6c 65 6d 65 6e 74 2c 20 27 63 6c 69 63 erElement, 'clic
7240: 6b 27 2c 20 4c 6f 67 34 6a 73 2e 62 69 6e 64 28 k', Log4js.bind(
7250: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 74 68 69 function() {thi
7260: 73 2e 74 61 67 46 69 6c 74 65 72 45 6c 65 6d 65 s.tagFilterEleme
7270: 6e 74 2e 73 65 6c 65 63 74 28 29 3b 7d 2c 20 74 nt.select();}, t
7280: 68 69 73 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 his));..
7290: 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 41 64 64 .. // Add
72a0: 20 6f 75 74 70 75 74 45 6c 65 6d 65 6e 74 0d 0a outputElement..
72b0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 75 74 this.out
72c0: 70 75 74 45 6c 65 6d 65 6e 74 20 3d 20 74 68 69 putElement = thi
72d0: 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 65 2e 63 s.docReference.c
72e0: 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 69 reateElement('di
72f0: 76 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 v');.. th
7300: 69 73 2e 6c 6f 67 45 6c 65 6d 65 6e 74 2e 61 70 is.logElement.ap
7310: 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73 2e 6f pendChild(this.o
7320: 75 74 70 75 74 45 6c 65 6d 65 6e 74 29 3b 20 20 utputElement);
7330: 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f .. this.o
7340: 75 74 70 75 74 45 6c 65 6d 65 6e 74 2e 73 74 79 utputElement.sty
7350: 6c 65 2e 6f 76 65 72 66 6c 6f 77 20 3d 20 22 61 le.overflow = "a
7360: 75 74 6f 22 3b 20 20 20 20 20 20 20 20 20 20 20 uto";
7370: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 74 68 69 .. thi
7380: 73 2e 6f 75 74 70 75 74 45 6c 65 6d 65 6e 74 2e s.outputElement.
7390: 73 74 79 6c 65 2e 63 6c 65 61 72 20 3d 20 22 62 style.clear = "b
73a0: 6f 74 68 22 3b 0d 0a 20 20 20 20 20 20 20 20 74 oth";.. t
73b0: 68 69 73 2e 6f 75 74 70 75 74 45 6c 65 6d 65 6e his.outputElemen
73c0: 74 2e 73 74 79 6c 65 2e 68 65 69 67 68 74 20 3d t.style.height =
73d0: 20 28 74 68 69 73 2e 69 6e 6c 69 6e 65 29 20 3f (this.inline) ?
73e0: 20 28 22 32 30 30 70 78 22 29 3a 28 22 36 35 30 ("200px"):("650
73f0: 70 78 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 74 px");.. t
7400: 68 69 73 2e 6f 75 74 70 75 74 45 6c 65 6d 65 6e his.outputElemen
7410: 74 2e 73 74 79 6c 65 2e 77 69 64 74 68 20 3d 20 t.style.width =
7420: 22 31 30 30 25 22 3b 0d 0a 20 20 20 20 20 20 20 "100%";..
7430: 20 74 68 69 73 2e 6f 75 74 70 75 74 45 6c 65 6d this.outputElem
7440: 65 6e 74 2e 73 74 79 6c 65 2e 62 61 63 6b 67 72 ent.style.backgr
7450: 6f 75 6e 64 43 6f 6c 6f 72 20 3d 20 27 62 6c 61 oundColor = 'bla
7460: 63 6b 27 3b 20 0d 0a 20 20 20 20 20 20 20 20 20 ck'; ..
7470: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ..
7480: 20 74 68 69 73 2e 69 6e 70 75 74 43 6f 6e 74 61 this.inputConta
7490: 69 6e 65 72 45 6c 65 6d 65 6e 74 20 3d 20 74 68 inerElement = th
74a0: 69 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 65 2e is.docReference.
74b0: 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 createElement('d
74c0: 69 76 27 29 3b 0d 0a 20 20 20 20 20 20 20 20 74 iv');.. t
74d0: 68 69 73 2e 69 6e 70 75 74 43 6f 6e 74 61 69 6e his.inputContain
74e0: 65 72 45 6c 65 6d 65 6e 74 2e 73 74 79 6c 65 2e erElement.style.
74f0: 77 69 64 74 68 20 3d 20 22 31 30 30 25 22 3b 0d width = "100%";.
7500: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f . this.lo
7510: 67 45 6c 65 6d 65 6e 74 2e 61 70 70 65 6e 64 43 gElement.appendC
7520: 68 69 6c 64 28 74 68 69 73 2e 69 6e 70 75 74 43 hild(this.inputC
7530: 6f 6e 74 61 69 6e 65 72 45 6c 65 6d 65 6e 74 29 ontainerElement)
7540: 3b 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ; ..
7550: 20 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e .. this.
7560: 69 6e 70 75 74 45 6c 65 6d 65 6e 74 20 3d 20 74 inputElement = t
7570: 68 69 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 65 his.docReference
7580: 2e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 .createElement('
7590: 69 6e 70 75 74 27 29 3b 0d 0a 20 20 20 20 20 20 input');..
75a0: 20 20 74 68 69 73 2e 69 6e 70 75 74 43 6f 6e 74 this.inputCont
75b0: 61 69 6e 65 72 45 6c 65 6d 65 6e 74 2e 61 70 70 ainerElement.app
75c0: 65 6e 64 43 68 69 6c 64 28 74 68 69 73 2e 69 6e endChild(this.in
75d0: 70 75 74 45 6c 65 6d 65 6e 74 29 3b 20 20 0d 0a putElement); ..
75e0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 69 6e 70 this.inp
75f0: 75 74 45 6c 65 6d 65 6e 74 2e 73 74 79 6c 65 2e utElement.style.
7600: 77 69 64 74 68 20 3d 20 27 31 30 30 25 27 3b 0d width = '100%';.
7610: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 69 6e . this.in
7620: 70 75 74 45 6c 65 6d 65 6e 74 2e 73 74 79 6c 65 putElement.style
7630: 2e 62 6f 72 64 65 72 57 69 64 74 68 20 3d 20 27 .borderWidth = '
7640: 30 70 78 27 3b 20 2f 2f 20 49 6e 70 75 74 73 20 0px'; // Inputs
7650: 77 69 74 68 20 31 30 30 25 20 77 69 64 74 68 20 with 100% width
7660: 61 6c 77 61 79 73 20 73 65 65 6d 20 74 6f 20 62 always seem to b
7670: 65 20 74 6f 6f 20 6c 61 72 67 65 20 28 49 20 48 e too large (I H
7680: 41 54 45 20 54 48 45 4d 29 20 74 68 65 79 20 6f ATE THEM) they o
7690: 6e 6c 79 20 77 6f 72 6b 20 69 66 20 74 68 65 20 nly work if the
76a0: 62 6f 72 64 65 72 2c 20 6d 61 72 67 69 6e 20 61 border, margin a
76b0: 6e 64 20 70 61 64 64 69 6e 67 20 61 72 65 20 30 nd padding are 0
76c0: 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 69 .. this.i
76d0: 6e 70 75 74 45 6c 65 6d 65 6e 74 2e 73 74 79 6c nputElement.styl
76e0: 65 2e 6d 61 72 67 69 6e 20 3d 20 27 30 70 78 27 e.margin = '0px'
76f0: 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e ;.. this.
7700: 69 6e 70 75 74 45 6c 65 6d 65 6e 74 2e 73 74 79 inputElement.sty
7710: 6c 65 2e 70 61 64 64 69 6e 67 20 3d 20 27 30 70 le.padding = '0p
7720: 78 27 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 x';.. thi
7730: 73 2e 69 6e 70 75 74 45 6c 65 6d 65 6e 74 2e 76 s.inputElement.v
7740: 61 6c 75 65 20 3d 20 27 54 79 70 65 20 63 6f 6d alue = 'Type com
7750: 6d 61 6e 64 20 68 65 72 65 27 3b 20 0d 0a 20 20 mand here'; ..
7760: 20 20 20 20 20 20 74 68 69 73 2e 69 6e 70 75 74 this.input
7770: 45 6c 65 6d 65 6e 74 2e 73 65 74 41 74 74 72 69 Element.setAttri
7780: 62 75 74 65 28 27 61 75 74 6f 63 6f 6d 70 6c 65 bute('autocomple
7790: 74 65 27 2c 20 27 6f 66 66 27 29 3b 20 2f 2f 20 te', 'off'); //
77a0: 53 6f 20 46 69 72 65 66 6f 78 20 64 6f 65 73 6e So Firefox doesn
77b0: 27 74 20 66 6c 69 70 20 6f 75 74 0d 0a 20 20 20 't flip out..
77c0: 20 0d 0a 20 20 20 20 20 20 20 20 4c 6f 67 34 6a .. Log4j
77d0: 73 2e 61 74 74 61 63 68 45 76 65 6e 74 28 74 68 s.attachEvent(th
77e0: 69 73 2e 69 6e 70 75 74 45 6c 65 6d 65 6e 74 2c is.inputElement,
77f0: 20 27 6b 65 79 75 70 27 2c 20 4c 6f 67 34 6a 73 'keyup', Log4js
7800: 2e 62 69 6e 64 28 74 68 69 73 2e 68 61 6e 64 6c .bind(this.handl
7810: 65 49 6e 70 75 74 2c 20 74 68 69 73 29 29 3b 0d eInput, this));.
7820: 0a 20 20 20 20 20 20 20 20 4c 6f 67 34 6a 73 2e . Log4js.
7830: 61 74 74 61 63 68 45 76 65 6e 74 28 74 68 69 73 attachEvent(this
7840: 2e 69 6e 70 75 74 45 6c 65 6d 65 6e 74 2c 20 27 .inputElement, '
7850: 63 6c 69 63 6b 27 2c 20 4c 6f 67 34 6a 73 2e 62 click', Log4js.b
7860: 69 6e 64 28 20 66 75 6e 63 74 69 6f 6e 28 29 20 ind( function()
7870: 7b 74 68 69 73 2e 69 6e 70 75 74 45 6c 65 6d 65 {this.inputEleme
7880: 6e 74 2e 73 65 6c 65 63 74 28 29 3b 7d 2c 20 74 nt.select();}, t
7890: 68 69 73 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 his));..
78a0: 0d 0a 20 20 20 20 20 20 20 20 69 66 28 74 68 69 .. if(thi
78b0: 73 2e 69 6e 6c 69 6e 65 29 7b 0d 0a 20 20 20 20 s.inline){..
78c0: 20 20 20 20 20 20 20 20 77 69 6e 64 6f 77 2e 73 window.s
78d0: 65 74 49 6e 74 65 72 76 61 6c 28 4c 6f 67 34 6a etInterval(Log4j
78e0: 73 2e 62 69 6e 64 28 74 68 69 73 2e 72 65 70 6f s.bind(this.repo
78f0: 73 69 74 69 6f 6e 57 69 6e 64 6f 77 2c 20 74 68 sitionWindow, th
7900: 69 73 29 2c 20 35 30 30 29 3b 0d 0a 20 20 20 20 is), 500);..
7910: 20 20 20 20 20 20 20 20 74 68 69 73 2e 72 65 70 this.rep
7920: 6f 73 69 74 69 6f 6e 57 69 6e 64 6f 77 28 29 3b ositionWindow();
7930: 09 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f ... /
7940: 2f 20 41 6c 6c 6f 77 20 61 63 65 73 73 20 6b 65 / Allow acess ke
7950: 79 20 6c 69 6e 6b 20 20 20 20 20 20 20 20 20 20 y link
7960: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 .. va
7970: 72 20 61 63 63 65 73 73 45 6c 65 6d 65 6e 74 20 r accessElement
7980: 3d 20 74 68 69 73 2e 64 6f 63 52 65 66 65 72 65 = this.docRefere
7990: 6e 63 65 2e 63 72 65 61 74 65 45 6c 65 6d 65 6e nce.createElemen
79a0: 74 28 27 62 75 74 74 6f 6e 27 29 3b 0d 0a 20 20 t('button');..
79b0: 20 20 20 20 20 20 20 20 20 20 61 63 63 65 73 73 access
79c0: 45 6c 65 6d 65 6e 74 2e 73 74 79 6c 65 2e 70 6f Element.style.po
79d0: 73 69 74 69 6f 6e 20 3d 20 22 61 62 73 6f 6c 75 sition = "absolu
79e0: 74 65 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 te";..
79f0: 20 20 61 63 63 65 73 73 45 6c 65 6d 65 6e 74 2e accessElement.
7a00: 73 74 79 6c 65 2e 74 6f 70 20 3d 20 22 2d 31 30 style.top = "-10
7a10: 30 70 78 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 0px";..
7a20: 20 20 20 61 63 63 65 73 73 45 6c 65 6d 65 6e 74 accessElement
7a30: 2e 61 63 63 65 73 73 4b 65 79 20 3d 20 74 68 69 .accessKey = thi
7a40: 73 2e 61 63 63 65 73 73 6b 65 79 3b 0d 0a 20 20 s.accesskey;..
7a50: 20 20 20 20 20 20 20 20 20 20 61 63 63 65 73 73 access
7a60: 45 6c 65 6d 65 6e 74 2e 6f 6e 63 6c 69 63 6b 20 Element.onclick
7a70: 3d 20 4c 6f 67 34 6a 73 2e 62 69 6e 64 28 74 68 = Log4js.bind(th
7a80: 69 73 2e 74 6f 67 67 6c 65 2c 20 74 68 69 73 29 is.toggle, this)
7a90: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 ;.. t
7aa0: 68 69 73 2e 64 6f 63 52 65 66 65 72 65 6e 63 65 his.docReference
7ab0: 2e 62 6f 64 79 2e 61 70 70 65 6e 64 43 68 69 6c .body.appendChil
7ac0: 64 28 61 63 63 65 73 73 45 6c 65 6d 65 6e 74 29 d(accessElement)
7ad0: 3b 0d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 ;.. } els
7ae0: 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 e {..
7af0: 20 74 68 69 73 2e 73 68 6f 77 28 29 3b 0d 0a 20 this.show();..
7b00: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c }.. },
7b10: 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a .. /**.. *
7b20: 20 73 68 6f 77 73 2f 68 69 64 65 20 61 6e 20 65 shows/hide an e
7b30: 6c 65 6d 65 6e 74 0d 0a 20 20 20 20 2a 20 40 70 lement.. * @p
7b40: 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 20 40 72 rivate.. * @r
7b50: 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 73 68 eturn true if sh
7b60: 6f 77 6e 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 own.. */..
7b70: 20 74 6f 67 67 6c 65 20 3a 20 66 75 6e 63 74 69 toggle : functi
7b80: 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 on() {..
7b90: 69 66 20 28 74 68 69 73 2e 6c 6f 67 45 6c 65 6d if (this.logElem
7ba0: 65 6e 74 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 ent.style.displa
7bb0: 79 20 3d 3d 20 27 6e 6f 6e 65 27 29 20 7b 0d 0a y == 'none') {..
7bc0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
7bd0: 2e 73 68 6f 77 28 29 3b 0d 0a 20 20 20 20 20 20 .show();..
7be0: 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 return tru
7bf0: 65 3b 0d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c e;.. } el
7c00: 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 se {..
7c10: 20 20 74 68 69 73 2e 68 69 64 65 28 29 3b 0d 0a this.hide();..
7c20: 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 retu
7c30: 72 6e 20 66 61 6c 73 65 3b 0d 0a 20 20 20 20 20 rn false;..
7c40: 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 20 0d 0a 20 }.. }, ..
7c50: 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 40 70 /**.. * @p
7c60: 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d 0a rivate.. */..
7c70: 20 20 20 20 73 68 6f 77 20 3a 20 66 75 6e 63 74 show : funct
7c80: 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 ion() {..
7c90: 20 74 68 69 73 2e 6c 6f 67 45 6c 65 6d 65 6e 74 this.logElement
7ca0: 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 79 20 3d .style.display =
7cb0: 20 27 27 3b 0d 0a 20 20 20 20 20 20 20 20 74 68 '';.. th
7cc0: 69 73 2e 6f 75 74 70 75 74 45 6c 65 6d 65 6e 74 is.outputElement
7cd0: 2e 73 63 72 6f 6c 6c 54 6f 70 20 3d 20 74 68 69 .scrollTop = thi
7ce0: 73 2e 6f 75 74 70 75 74 45 6c 65 6d 65 6e 74 2e s.outputElement.
7cf0: 73 63 72 6f 6c 6c 48 65 69 67 68 74 3b 20 2f 2f scrollHeight; //
7d00: 20 53 63 72 6f 6c 6c 20 74 6f 20 62 6f 74 74 6f Scroll to botto
7d10: 6d 20 77 68 65 6e 20 74 6f 67 67 6c 65 64 0d 0a m when toggled..
7d20: 20 20 20 20 20 20 20 20 74 68 69 73 2e 69 6e 70 this.inp
7d30: 75 74 45 6c 65 6d 65 6e 74 2e 73 65 6c 65 63 74 utElement.select
7d40: 28 29 3b 0d 0a 20 20 20 20 7d 2c 20 0d 0a 20 20 ();.. }, ..
7d50: 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 40 70 72 /**.. * @pr
7d60: 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f 09 0d 0a ivate.. */...
7d70: 20 20 20 20 68 69 64 65 20 3a 20 66 75 6e 63 74 hide : funct
7d80: 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 ion() {..
7d90: 20 74 68 69 73 2e 6c 6f 67 45 6c 65 6d 65 6e 74 this.logElement
7da0: 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 79 20 3d .style.display =
7db0: 20 27 6e 6f 6e 65 27 3b 0d 0a 20 20 20 20 7d 2c 'none';.. },
7dc0: 20 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 .. /**..
7dd0: 20 2a 20 40 70 72 69 76 61 74 65 0d 0a 20 20 20 * @private..
7de0: 20 2a 20 40 70 61 72 61 6d 20 6d 65 73 73 61 67 * @param messag
7df0: 65 0d 0a 20 20 20 20 2a 20 40 73 74 79 6c 65 0d e.. * @style.
7e00: 0a 20 20 20 20 2a 2f 09 0d 0a 20 20 20 20 6f 75 . */... ou
7e10: 74 70 75 74 20 3a 20 66 75 6e 63 74 69 6f 6e 28 tput : function(
7e20: 6d 65 73 73 61 67 65 2c 20 73 74 79 6c 65 29 20 message, style)
7e30: 7b 0d 0a 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 {.... //
7e40: 49 66 20 77 65 20 61 72 65 20 61 74 20 74 68 65 If we are at the
7e50: 20 62 6f 74 74 6f 6d 20 6f 66 20 74 68 65 20 77 bottom of the w
7e60: 69 6e 64 6f 77 2c 20 74 68 65 6e 20 6b 65 65 70 indow, then keep
7e70: 20 73 63 72 6f 6c 6c 69 6e 67 20 77 69 74 68 20 scrolling with
7e80: 74 68 65 20 6f 75 74 70 75 74 09 09 09 0d 0a 20 the output.....
7e90: 20 20 20 20 20 20 20 76 61 72 20 73 68 6f 75 6c var shoul
7ea0: 64 53 63 72 6f 6c 6c 20 3d 20 28 74 68 69 73 2e dScroll = (this.
7eb0: 6f 75 74 70 75 74 45 6c 65 6d 65 6e 74 2e 73 63 outputElement.sc
7ec0: 72 6f 6c 6c 54 6f 70 20 2b 20 28 32 20 2a 20 74 rollTop + (2 * t
7ed0: 68 69 73 2e 6f 75 74 70 75 74 45 6c 65 6d 65 6e his.outputElemen
7ee0: 74 2e 63 6c 69 65 6e 74 48 65 69 67 68 74 29 29 t.clientHeight))
7ef0: 20 3e 3d 20 74 68 69 73 2e 6f 75 74 70 75 74 45 >= this.outputE
7f00: 6c 65 6d 65 6e 74 2e 73 63 72 6f 6c 6c 48 65 69 lement.scrollHei
7f10: 67 68 74 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a ght;.. ..
7f20: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 75 74 this.out
7f30: 70 75 74 43 6f 75 6e 74 2b 2b 3b 0d 0a 20 20 20 putCount++;..
7f40: 20 20 20 20 20 73 74 79 6c 65 20 3d 20 28 73 74 style = (st
7f50: 79 6c 65 20 3f 20 73 74 79 6c 65 20 2b 3d 20 27 yle ? style += '
7f60: 3b 27 20 3a 20 27 27 29 3b 09 20 20 09 0d 0a 20 ;' : '');. ...
7f70: 20 20 20 20 20 20 20 73 74 79 6c 65 20 2b 3d 20 style +=
7f80: 27 70 61 64 64 69 6e 67 3a 31 70 78 3b 6d 61 72 'padding:1px;mar
7f90: 67 69 6e 3a 30 20 30 20 35 70 78 20 30 27 3b 09 gin:0 0 5px 0';.
7fa0: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 0d .. .
7fb0: 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 . if (thi
7fc0: 73 2e 6f 75 74 70 75 74 43 6f 75 6e 74 20 25 20 s.outputCount %
7fd0: 32 20 3d 3d 3d 20 30 29 20 7b 0d 0a 20 20 20 20 2 === 0) {..
7fe0: 20 20 20 20 20 20 20 20 73 74 79 6c 65 20 2b 3d style +=
7ff0: 20 22 3b 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f ";background-co
8000: 6c 6f 72 3a 23 31 30 31 30 31 30 22 3b 0d 0a 20 lor:#101010";..
8010: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 }..
8020: 20 20 0d 0a 20 20 20 20 20 20 20 20 6d 65 73 73 .. mess
8030: 61 67 65 20 3d 20 6d 65 73 73 61 67 65 20 7c 7c age = message ||
8040: 20 22 75 6e 64 65 66 69 6e 65 64 22 3b 0d 0a 20 "undefined";..
8050: 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 20 3d message =
8060: 20 6d 65 73 73 61 67 65 2e 74 6f 53 74 72 69 6e message.toStrin
8070: 67 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a g();.. ..
8080: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 75 74 this.out
8090: 70 75 74 45 6c 65 6d 65 6e 74 2e 69 6e 6e 65 72 putElement.inner
80a0: 48 54 4d 4c 20 2b 3d 20 22 3c 70 72 65 20 73 74 HTML += "<pre st
80b0: 79 6c 65 3d 27 22 20 2b 20 73 74 79 6c 65 20 2b yle='" + style +
80c0: 20 22 27 3e 22 20 2b 20 6d 65 73 73 61 67 65 20 "'>" + message
80d0: 2b 20 22 3c 2f 70 72 65 3e 22 3b 0d 0a 20 20 20 + "</pre>";..
80e0: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 69 .. i
80f0: 66 20 28 73 68 6f 75 6c 64 53 63 72 6f 6c 6c 29 f (shouldScroll)
8100: 20 7b 09 09 09 09 0d 0a 20 20 20 20 20 20 20 20 {......
8110: 20 20 20 20 74 68 69 73 2e 6f 75 74 70 75 74 45 this.outputE
8120: 6c 65 6d 65 6e 74 2e 73 63 72 6f 6c 6c 54 6f 70 lement.scrollTop
8130: 20 3d 20 74 68 69 73 2e 6f 75 74 70 75 74 45 6c = this.outputEl
8140: 65 6d 65 6e 74 2e 73 63 72 6f 6c 6c 48 65 69 67 ement.scrollHeig
8150: 68 74 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a ht;.. }..
8160: 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 20 },.. ..
8170: 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 40 70 72 /**.. * @pr
8180: 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 ivate.. */..
8190: 20 20 20 75 70 64 61 74 65 54 61 67 73 20 3a 20 updateTags :
81a0: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 function() {..
81b0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
81c0: 76 61 72 20 70 61 74 74 65 72 6e 20 3d 20 74 68 var pattern = th
81d0: 69 73 2e 74 61 67 46 69 6c 74 65 72 45 6c 65 6d is.tagFilterElem
81e0: 65 6e 74 2e 76 61 6c 75 65 3b 0d 0a 20 20 20 20 ent.value;..
81f0: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 68 .. if (th
8200: 69 73 2e 74 61 67 50 61 74 74 65 72 6e 20 3d 3d is.tagPattern ==
8210: 20 70 61 74 74 65 72 6e 29 20 7b 0d 0a 20 20 20 pattern) {..
8220: 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b return;
8230: 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 .. }..
8240: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 74 .. t
8250: 72 79 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 ry {..
8260: 20 20 6e 65 77 20 52 65 67 45 78 70 28 70 61 74 new RegExp(pat
8270: 74 65 72 6e 29 3b 0d 0a 20 20 20 20 20 20 20 20 tern);..
8280: 7d 20 63 61 74 63 68 20 28 65 29 20 7b 0d 0a 20 } catch (e) {..
8290: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 retur
82a0: 6e 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 n;.. }..
82b0: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ..
82c0: 20 74 68 69 73 2e 74 61 67 50 61 74 74 65 72 6e this.tagPattern
82d0: 20 3d 20 70 61 74 74 65 72 6e 3b 0d 0a 0d 0a 20 = pattern;....
82e0: 20 20 20 20 20 20 20 74 68 69 73 2e 6f 75 74 70 this.outp
82f0: 75 74 45 6c 65 6d 65 6e 74 2e 69 6e 6e 65 72 48 utElement.innerH
8300: 54 4d 4c 20 3d 20 22 22 3b 0d 0a 20 20 20 20 20 TML = "";..
8310: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 .. //
8320: 47 6f 20 74 68 72 6f 75 67 68 20 65 61 63 68 20 Go through each
8330: 6c 6f 67 20 65 6e 74 72 79 20 61 67 61 69 6e 0d log entry again.
8340: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 75 . this.ou
8350: 74 70 75 74 43 6f 75 6e 74 20 3d 20 30 3b 0d 0a tputCount = 0;..
8360: 20 20 20 20 20 20 20 20 66 6f 72 20 28 76 61 72 for (var
8370: 20 69 20 3d 20 30 3b 20 69 20 3c 20 74 68 69 73 i = 0; i < this
8380: 2e 6c 6f 67 67 65 72 2e 6c 6f 67 67 69 6e 67 45 .logger.loggingE
8390: 76 65 6e 74 73 2e 6c 65 6e 67 74 68 3b 20 69 2b vents.length; i+
83a0: 2b 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 +) {..
83b0: 20 20 74 68 69 73 2e 64 6f 41 70 70 65 6e 64 28 this.doAppend(
83c0: 74 68 69 73 2e 6c 6f 67 67 65 72 2e 6c 6f 67 67 this.logger.logg
83d0: 69 6e 67 45 76 65 6e 74 73 5b 69 5d 29 3b 0d 0a ingEvents[i]);..
83e0: 20 20 20 20 20 20 20 20 7d 20 20 0d 0a 20 20 20 } ..
83f0: 20 7d 2c 0d 0a 0d 0a 20 20 20 20 2f 2a 2a 0d 0a },.... /**..
8400: 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 0d 0a * @private..
8410: 20 20 20 20 2a 2f 09 0d 0a 20 20 20 20 72 65 70 */... rep
8420: 6f 73 69 74 69 6f 6e 57 69 6e 64 6f 77 20 3a 20 ositionWindow :
8430: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 function() {..
8440: 20 20 20 20 20 20 76 61 72 20 6f 66 66 73 65 74 var offset
8450: 20 3d 20 77 69 6e 64 6f 77 2e 70 61 67 65 59 4f = window.pageYO
8460: 66 66 73 65 74 20 7c 7c 20 74 68 69 73 2e 64 6f ffset || this.do
8470: 63 52 65 66 65 72 65 6e 63 65 2e 64 6f 63 75 6d cReference.docum
8480: 65 6e 74 45 6c 65 6d 65 6e 74 2e 73 63 72 6f 6c entElement.scrol
8490: 6c 54 6f 70 20 7c 7c 20 74 68 69 73 2e 64 6f 63 lTop || this.doc
84a0: 52 65 66 65 72 65 6e 63 65 2e 62 6f 64 79 2e 73 Reference.body.s
84b0: 63 72 6f 6c 6c 54 6f 70 3b 0d 0a 20 20 20 20 20 crollTop;..
84c0: 20 20 20 76 61 72 20 70 61 67 65 48 65 69 67 68 var pageHeigh
84d0: 74 20 3d 20 73 65 6c 66 2e 69 6e 6e 65 72 48 65 t = self.innerHe
84e0: 69 67 68 74 20 7c 7c 20 74 68 69 73 2e 64 6f 63 ight || this.doc
84f0: 52 65 66 65 72 65 6e 63 65 2e 64 6f 63 75 6d 65 Reference.docume
8500: 6e 74 45 6c 65 6d 65 6e 74 2e 63 6c 69 65 6e 74 ntElement.client
8510: 48 65 69 67 68 74 20 7c 7c 20 74 68 69 73 2e 64 Height || this.d
8520: 6f 63 52 65 66 65 72 65 6e 63 65 2e 62 6f 64 79 ocReference.body
8530: 2e 63 6c 69 65 6e 74 48 65 69 67 68 74 3b 0d 0a .clientHeight;..
8540: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 this.log
8550: 45 6c 65 6d 65 6e 74 2e 73 74 79 6c 65 2e 74 6f Element.style.to
8560: 70 20 3d 20 28 6f 66 66 73 65 74 20 2b 20 70 61 p = (offset + pa
8570: 67 65 48 65 69 67 68 74 20 2d 20 74 68 69 73 2e geHeight - this.
8580: 6c 6f 67 45 6c 65 6d 65 6e 74 2e 6f 66 66 73 65 logElement.offse
8590: 74 48 65 69 67 68 74 29 20 2b 20 22 70 78 22 3b tHeight) + "px";
85a0: 0d 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 .. },....
85b0: 2f 2a 2a 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 /**.. * @para
85c0: 6d 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 20 65 m loggingEvent e
85d0: 76 65 6e 74 20 74 6f 20 62 65 20 6c 6f 67 67 65 vent to be logge
85e0: 64 0d 0a 20 20 20 20 2a 20 40 73 65 65 20 4c 6f d.. * @see Lo
85f0: 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 23 64 6f g4js.Appender#do
8600: 41 70 70 65 6e 64 0d 0a 20 20 20 20 2a 2f 0d 0a Append.. */..
8610: 20 20 20 20 64 6f 41 70 70 65 6e 64 20 3a 20 66 doAppend : f
8620: 75 6e 63 74 69 6f 6e 28 6c 6f 67 67 69 6e 67 45 unction(loggingE
8630: 76 65 6e 74 29 20 7b 0d 0a 20 20 20 20 20 20 20 vent) {..
8640: 20 0d 0a 20 20 20 20 20 20 20 20 69 66 28 74 68 .. if(th
8650: 69 73 2e 70 6f 70 75 70 42 6c 6f 63 6b 65 72 29 is.popupBlocker)
8660: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
8670: 2f 2f 70 6f 70 75 70 20 62 6c 6f 63 6b 65 64 2c //popup blocked,
8680: 20 77 65 20 72 65 74 75 72 6e 20 69 6e 20 74 68 we return in th
8690: 69 73 20 63 61 73 65 0d 0a 20 20 20 20 20 20 20 is case..
86a0: 20 20 20 20 20 72 65 74 75 72 6e 3b 0d 0a 20 20 return;..
86b0: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
86c0: 20 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 28 .. if ((
86d0: 21 74 68 69 73 2e 69 6e 6c 69 6e 65 29 20 26 26 !this.inline) &&
86e0: 20 28 21 74 68 69 73 2e 77 69 6e 52 65 66 65 72 (!this.winRefer
86f0: 65 6e 63 65 20 7c 7c 20 74 68 69 73 2e 77 69 6e ence || this.win
8700: 52 65 66 65 72 65 6e 63 65 2e 63 6c 6f 73 65 64 Reference.closed
8710: 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 )) {..
8720: 20 20 74 68 69 73 2e 69 6e 69 74 69 61 6c 69 7a this.initializ
8730: 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d e();.. }.
8740: 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 . ..
8750: 20 20 20 69 66 20 28 74 68 69 73 2e 74 61 67 50 if (this.tagP
8760: 61 74 74 65 72 6e 20 21 3d 3d 20 6e 75 6c 6c 20 attern !== null
8770: 26 26 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 && ..
8780: 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e 6c 65 loggingEvent.le
8790: 76 65 6c 2e 74 6f 53 74 72 69 6e 67 28 29 2e 73 vel.toString().s
87a0: 65 61 72 63 68 28 6e 65 77 20 52 65 67 45 78 70 earch(new RegExp
87b0: 28 74 68 69 73 2e 74 61 67 50 61 74 74 65 72 6e (this.tagPattern
87c0: 2c 20 27 69 67 6d 27 29 29 20 3d 3d 20 2d 31 29 , 'igm')) == -1)
87d0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
87e0: 72 65 74 75 72 6e 3b 0d 0a 20 20 20 20 20 20 20 return;..
87f0: 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 }.. ..
8800: 20 20 20 20 20 20 76 61 72 20 73 74 79 6c 65 20 var style
8810: 3d 20 27 27 3b 0d 0a 20 20 20 20 20 20 20 20 0d = '';.. .
8820: 0a 20 20 20 20 20 20 20 20 69 66 20 28 6c 6f 67 . if (log
8830: 67 69 6e 67 45 76 65 6e 74 2e 6c 65 76 65 6c 2e gingEvent.level.
8840: 74 6f 53 74 72 69 6e 67 28 29 2e 73 65 61 72 63 toString().searc
8850: 68 28 2f 45 52 52 4f 52 2f 29 20 21 3d 20 2d 31 h(/ERROR/) != -1
8860: 29 20 7b 20 0d 0a 20 20 20 20 20 20 20 20 20 20 ) { ..
8870: 20 20 73 74 79 6c 65 20 2b 3d 20 27 63 6f 6c 6f style += 'colo
8880: 72 3a 72 65 64 27 3b 0d 0a 20 20 20 20 20 20 20 r:red';..
8890: 20 7d 20 65 6c 73 65 20 69 66 20 28 6c 6f 67 67 } else if (logg
88a0: 69 6e 67 45 76 65 6e 74 2e 6c 65 76 65 6c 2e 74 ingEvent.level.t
88b0: 6f 53 74 72 69 6e 67 28 29 2e 73 65 61 72 63 68 oString().search
88c0: 28 2f 46 41 54 41 4c 2f 29 20 21 3d 20 2d 31 29 (/FATAL/) != -1)
88d0: 20 7b 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 { ..
88e0: 20 73 74 79 6c 65 20 2b 3d 20 27 63 6f 6c 6f 72 style += 'color
88f0: 3a 72 65 64 27 3b 0d 0a 20 20 20 20 20 20 20 20 :red';..
8900: 7d 20 65 6c 73 65 20 69 66 20 28 6c 6f 67 67 69 } else if (loggi
8910: 6e 67 45 76 65 6e 74 2e 6c 65 76 65 6c 2e 74 6f ngEvent.level.to
8920: 53 74 72 69 6e 67 28 29 2e 73 65 61 72 63 68 28 String().search(
8930: 2f 57 41 52 4e 2f 29 20 21 3d 20 2d 31 29 20 7b /WARN/) != -1) {
8940: 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 .. s
8950: 74 79 6c 65 20 2b 3d 20 27 63 6f 6c 6f 72 3a 6f tyle += 'color:o
8960: 72 61 6e 67 65 27 3b 0d 0a 20 20 20 20 20 20 20 range';..
8970: 20 7d 20 65 6c 73 65 20 69 66 20 28 6c 6f 67 67 } else if (logg
8980: 69 6e 67 45 76 65 6e 74 2e 6c 65 76 65 6c 2e 74 ingEvent.level.t
8990: 6f 53 74 72 69 6e 67 28 29 2e 73 65 61 72 63 68 oString().search
89a0: 28 2f 44 45 42 55 47 2f 29 20 21 3d 20 2d 31 29 (/DEBUG/) != -1)
89b0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
89c0: 73 74 79 6c 65 20 2b 3d 20 27 63 6f 6c 6f 72 3a style += 'color:
89d0: 67 72 65 65 6e 27 3b 0d 0a 20 20 20 20 20 20 20 green';..
89e0: 20 7d 20 65 6c 73 65 20 69 66 20 28 6c 6f 67 67 } else if (logg
89f0: 69 6e 67 45 76 65 6e 74 2e 6c 65 76 65 6c 2e 74 ingEvent.level.t
8a00: 6f 53 74 72 69 6e 67 28 29 2e 73 65 61 72 63 68 oString().search
8a10: 28 2f 49 4e 46 4f 2f 29 20 21 3d 20 2d 31 29 20 (/INFO/) != -1)
8a20: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 {.. s
8a30: 74 79 6c 65 20 2b 3d 20 27 63 6f 6c 6f 72 3a 77 tyle += 'color:w
8a40: 68 69 74 65 27 3b 0d 0a 20 20 20 20 20 20 20 20 hite';..
8a50: 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 } else {..
8a60: 20 20 20 20 20 20 73 74 79 6c 65 20 2b 3d 20 27 style += '
8a70: 63 6f 6c 6f 72 3a 79 65 6c 6c 6f 77 27 3b 0d 0a color:yellow';..
8a80: 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 0d }.. .
8a90: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6f 75 . this.ou
8aa0: 74 70 75 74 28 74 68 69 73 2e 6c 61 79 6f 75 74 tput(this.layout
8ab0: 2e 66 6f 72 6d 61 74 28 6c 6f 67 67 69 6e 67 45 .format(loggingE
8ac0: 76 65 6e 74 29 2c 20 73 74 79 6c 65 29 3b 09 0d vent), style);..
8ad0: 0a 20 20 20 20 7d 2c 0d 0a 0d 0a 20 20 20 20 2f . },.... /
8ae0: 2a 2a 0d 0a 20 20 20 20 2a 20 40 73 65 65 20 4c **.. * @see L
8af0: 6f 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 23 64 og4js.Appender#d
8b00: 6f 43 6c 65 61 72 0d 0a 20 20 20 20 2a 2f 0d 0a oClear.. */..
8b10: 20 20 20 20 64 6f 43 6c 65 61 72 20 3a 20 66 75 doClear : fu
8b20: 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 nction() {..
8b30: 20 20 20 20 74 68 69 73 2e 6f 75 74 70 75 74 45 this.outputE
8b40: 6c 65 6d 65 6e 74 2e 69 6e 6e 65 72 48 54 4d 4c lement.innerHTML
8b50: 20 3d 20 22 22 3b 0d 0a 20 20 20 20 7d 2c 0d 0a = "";.. },..
8b60: 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 40 /**.. * @
8b70: 70 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 20 40 private.. * @
8b80: 70 61 72 61 6d 20 65 0d 0a 20 20 20 20 2a 2f 0d param e.. */.
8b90: 0a 20 20 20 20 68 61 6e 64 6c 65 49 6e 70 75 74 . handleInput
8ba0: 20 3a 20 66 75 6e 63 74 69 6f 6e 28 65 29 20 7b : function(e) {
8bb0: 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 2e .. if (e.
8bc0: 6b 65 79 43 6f 64 65 20 3d 3d 20 31 33 20 29 20 keyCode == 13 )
8bd0: 7b 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 { ..
8be0: 20 20 20 20 20 76 61 72 20 63 6f 6d 6d 61 6e 64 var command
8bf0: 20 3d 20 74 68 69 73 2e 69 6e 70 75 74 45 6c 65 = this.inputEle
8c00: 6d 65 6e 74 2e 76 61 6c 75 65 3b 0d 0a 20 20 20 ment.value;..
8c10: 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 ..
8c20: 20 20 20 20 20 20 20 73 77 69 74 63 68 28 63 6f switch(co
8c30: 6d 6d 61 6e 64 29 20 7b 0d 0a 20 20 20 20 20 20 mmand) {..
8c40: 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 22 case "
8c50: 63 6c 65 61 72 22 3a 0d 0a 20 20 20 20 20 20 20 clear":..
8c60: 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 thi
8c70: 73 2e 6c 6f 67 67 65 72 2e 63 6c 65 61 72 28 29 s.logger.clear()
8c80: 3b 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ; ..
8c90: 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d break;.
8ca0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
8cb0: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 ..
8cc0: 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a 20 default:
8cd0: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ..
8ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 var
8cf0: 20 63 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 20 3d consoleOutput =
8d00: 20 22 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 "";..
8d10: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
8d20: 20 20 20 20 20 20 20 20 20 20 20 20 74 72 79 20 try
8d30: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
8d40: 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 73 6f conso
8d50: 6c 65 4f 75 74 70 75 74 20 3d 20 65 76 61 6c 28 leOutput = eval(
8d60: 74 68 69 73 2e 69 6e 70 75 74 45 6c 65 6d 65 6e this.inputElemen
8d70: 74 2e 76 61 6c 75 65 29 3b 0d 0a 20 20 20 20 20 t.value);..
8d80: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
8d90: 20 63 61 74 63 68 20 28 65 29 20 7b 20 20 0d 0a catch (e) { ..
8da0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8db0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 this.log
8dc0: 67 65 72 2e 65 72 72 6f 72 28 22 50 72 6f 62 6c ger.error("Probl
8dd0: 65 6d 20 70 61 72 73 69 6e 67 20 69 6e 70 75 74 em parsing input
8de0: 20 3c 22 20 2b 20 63 6f 6d 6d 61 6e 64 20 2b 20 <" + command +
8df0: 22 3e 22 20 2b 20 65 2e 6d 65 73 73 61 67 65 29 ">" + e.message)
8e00: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
8e10: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
8e20: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
8e30: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 }..
8e40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8e50: 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..
8e60: 20 20 20 20 20 20 20 20 74 68 69 73 2e 6c 6f 67 this.log
8e70: 67 65 72 2e 74 72 61 63 65 28 63 6f 6e 73 6f 6c ger.trace(consol
8e80: 65 4f 75 74 70 75 74 29 3b 0d 0a 20 20 20 20 20 eOutput);..
8e90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
8ea0: 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 reak;..
8eb0: 20 20 20 7d 20 20 20 20 20 20 20 20 0d 0a 20 20 } ..
8ec0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
8ed0: 20 20 20 20 69 66 20 28 74 68 69 73 2e 69 6e 70 if (this.inp
8ee0: 75 74 45 6c 65 6d 65 6e 74 2e 76 61 6c 75 65 20 utElement.value
8ef0: 21 3d 3d 20 22 22 20 26 26 20 74 68 69 73 2e 69 !== "" && this.i
8f00: 6e 70 75 74 45 6c 65 6d 65 6e 74 2e 76 61 6c 75 nputElement.valu
8f10: 65 20 21 3d 3d 20 74 68 69 73 2e 63 6f 6d 6d 61 e !== this.comma
8f20: 6e 64 48 69 73 74 6f 72 79 5b 30 5d 29 20 7b 0d ndHistory[0]) {.
8f30: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
8f40: 20 74 68 69 73 2e 63 6f 6d 6d 61 6e 64 48 69 73 this.commandHis
8f50: 74 6f 72 79 2e 75 6e 73 68 69 66 74 28 74 68 69 tory.unshift(thi
8f60: 73 2e 69 6e 70 75 74 45 6c 65 6d 65 6e 74 2e 76 s.inputElement.v
8f70: 61 6c 75 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 alue);..
8f80: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d }.. .
8f90: 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 . thi
8fa0: 73 2e 63 6f 6d 6d 61 6e 64 49 6e 64 65 78 20 3d s.commandIndex =
8fb0: 20 30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 0;..
8fc0: 20 74 68 69 73 2e 69 6e 70 75 74 45 6c 65 6d 65 this.inputEleme
8fd0: 6e 74 2e 76 61 6c 75 65 20 3d 20 22 22 3b 20 20 nt.value = "";
8fe0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
8ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
9000: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
9010: 20 20 20 0d 0a 20 20 20 20 20 20 20 20 7d 20 65 .. } e
9020: 6c 73 65 20 69 66 20 28 65 2e 6b 65 79 43 6f 64 lse if (e.keyCod
9030: 65 20 3d 3d 20 33 38 20 26 26 20 74 68 69 73 2e e == 38 && this.
9040: 63 6f 6d 6d 61 6e 64 48 69 73 74 6f 72 79 2e 6c commandHistory.l
9050: 65 6e 67 74 68 20 3e 20 30 29 20 7b 0d 0a 20 20 ength > 0) {..
9060: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 69 this.i
9070: 6e 70 75 74 45 6c 65 6d 65 6e 74 2e 76 61 6c 75 nputElement.valu
9080: 65 20 3d 20 74 68 69 73 2e 63 6f 6d 6d 61 6e 64 e = this.command
9090: 48 69 73 74 6f 72 79 5b 74 68 69 73 2e 63 6f 6d History[this.com
90a0: 6d 61 6e 64 49 6e 64 65 78 5d 3b 0d 0a 0d 0a 20 mandIndex];....
90b0: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 if (t
90c0: 68 69 73 2e 63 6f 6d 6d 61 6e 64 49 6e 64 65 78 his.commandIndex
90d0: 20 3c 20 74 68 69 73 2e 63 6f 6d 6d 61 6e 64 48 < this.commandH
90e0: 69 73 74 6f 72 79 2e 6c 65 6e 67 74 68 20 2d 20 istory.length -
90f0: 31 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 1) {..
9100: 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6d 6d 61 this.comma
9110: 6e 64 49 6e 64 65 78 20 2b 3d 20 31 3b 0d 0a 20 ndIndex += 1;..
9120: 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 }..
9130: 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 } else if
9140: 28 65 2e 6b 65 79 43 6f 64 65 20 3d 3d 20 34 30 (e.keyCode == 40
9150: 20 26 26 20 74 68 69 73 2e 63 6f 6d 6d 61 6e 64 && this.command
9160: 48 69 73 74 6f 72 79 2e 6c 65 6e 67 74 68 20 3e History.length >
9170: 20 30 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 0) {..
9180: 20 20 20 69 66 20 28 74 68 69 73 2e 63 6f 6d 6d if (this.comm
9190: 61 6e 64 49 6e 64 65 78 20 3e 20 30 29 20 7b 20 andIndex > 0) {
91a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
91b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
91c0: 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 ..
91d0: 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6d 6d this.comm
91e0: 61 6e 64 49 6e 64 65 78 20 2d 3d 20 31 3b 0d 0a andIndex -= 1;..
91f0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 20 20 }
9200: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
9210: 20 20 20 20 0d 0a 0d 0a 20 20 20 20 20 20 20 20 ....
9220: 20 20 20 20 74 68 69 73 2e 69 6e 70 75 74 45 6c this.inputEl
9230: 65 6d 65 6e 74 2e 76 61 6c 75 65 20 3d 20 74 68 ement.value = th
9240: 69 73 2e 63 6f 6d 6d 61 6e 64 48 69 73 74 6f 72 is.commandHistor
9250: 79 5b 74 68 69 73 2e 63 6f 6d 6d 61 6e 64 49 6e y[this.commandIn
9260: 64 65 78 5d 3b 0d 0a 20 20 20 20 20 20 20 20 7d dex];.. }
9270: 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 else {..
9280: 20 20 20 20 20 74 68 69 73 2e 63 6f 6d 6d 61 6e this.comman
9290: 64 49 6e 64 65 78 20 3d 20 30 3b 0d 0a 20 20 20 dIndex = 0;..
92a0: 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d 0a }.. },..
92b0: 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a .. /** ..
92c0: 20 20 20 20 2a 20 74 6f 53 74 72 69 6e 67 0d 0a * toString..
92d0: 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 6f 53 74 */.. toSt
92e0: 72 69 6e 67 3a 20 66 75 6e 63 74 69 6f 6e 28 29 ring: function()
92f0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 {.. retu
9300: 72 6e 20 22 4c 6f 67 34 6a 73 2e 43 6f 6e 73 6f rn "Log4js.Conso
9310: 6c 65 41 70 70 65 6e 64 65 72 5b 69 6e 6c 69 6e leAppender[inlin
9320: 65 3d 22 20 2b 20 74 68 69 73 2e 69 6e 6c 69 6e e=" + this.inlin
9330: 65 20 2b 20 22 5d 22 3b 20 0d 0a 20 20 20 20 7d e + "]"; .. }
9340: 0d 0a 7d 29 3b 20 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a ..}); ..../**..*
9350: 20 4d 65 74 61 74 61 67 20 41 70 70 65 6e 64 65 Metatag Appende
9360: 72 20 77 72 69 74 69 6e 67 20 74 68 65 20 6c 6f r writing the lo
9370: 67 73 20 74 6f 20 6d 65 74 61 20 74 61 67 73 0d gs to meta tags.
9380: 0a 2a 0d 0a 2a 20 40 65 78 74 65 6e 64 73 20 4c .*..* @extends L
9390: 6f 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 0d 0a og4js.Appender..
93a0: 2a 20 40 63 6f 6e 73 74 72 75 63 74 6f 72 0d 0a * @constructor..
93b0: 2a 20 40 70 61 72 61 6d 20 6c 6f 67 67 65 72 20 * @param logger
93c0: 6c 6f 67 34 6a 73 20 69 6e 73 74 61 6e 63 65 20 log4js instance
93d0: 74 68 69 73 20 61 70 70 65 6e 64 65 72 20 69 73 this appender is
93e0: 20 61 74 74 61 63 68 65 64 20 74 6f 0d 0a 2a 20 attached to..*
93f0: 40 61 75 74 68 6f 72 20 53 74 65 70 68 61 6e 20 @author Stephan
9400: 53 74 72 69 74 74 6d 61 74 74 65 72 0d 0a 2a 2f Strittmatter..*/
9410: 0d 0a 4c 6f 67 34 6a 73 2e 4d 65 74 61 74 61 67 ..Log4js.Metatag
9420: 41 70 70 65 6e 64 65 72 20 3d 20 66 75 6e 63 74 Appender = funct
9430: 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 74 68 69 ion() {.. thi
9440: 73 2e 63 75 72 72 65 6e 74 4c 69 6e 65 20 3d 20 s.currentLine =
9450: 30 3b 0d 0a 7d 3b 0d 0a 4c 6f 67 34 6a 73 2e 4d 0;..};..Log4js.M
9460: 65 74 61 74 61 67 41 70 70 65 6e 64 65 72 2e 70 etatagAppender.p
9470: 72 6f 74 6f 74 79 70 65 20 3d 20 4c 6f 67 34 6a rototype = Log4j
9480: 73 2e 65 78 74 65 6e 64 28 6e 65 77 20 4c 6f 67 s.extend(new Log
9490: 34 6a 73 2e 41 70 70 65 6e 64 65 72 28 29 2c 20 4js.Appender(),
94a0: 7b 20 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 { .. /**..
94b0: 20 20 2a 20 40 70 61 72 61 6d 20 6c 6f 67 67 69 * @param loggi
94c0: 6e 67 45 76 65 6e 74 20 65 76 65 6e 74 20 74 6f ngEvent event to
94d0: 20 62 65 20 6c 6f 67 67 65 64 0d 0a 20 20 20 20 be logged..
94e0: 2a 20 40 73 65 65 20 4c 6f 67 34 6a 73 2e 41 70 * @see Log4js.Ap
94f0: 70 65 6e 64 65 72 23 64 6f 41 70 70 65 6e 64 0d pender#doAppend.
9500: 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 64 6f 41 . */.. doA
9510: 70 70 65 6e 64 3a 20 66 75 6e 63 74 69 6f 6e 28 ppend: function(
9520: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 29 20 7b 0d loggingEvent) {.
9530: 0a 20 20 20 20 20 20 20 20 76 61 72 20 6e 6f 77 . var now
9540: 20 3d 20 6e 65 77 20 44 61 74 65 28 29 3b 0d 0a = new Date();..
9550: 20 20 20 20 20 20 20 20 76 61 72 20 6c 69 6e 65 var line
9560: 73 20 3d 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 s = loggingEvent
9570: 2e 6d 65 73 73 61 67 65 2e 73 70 6c 69 74 28 22 .message.split("
9580: 5c 6e 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 76 \n");.. v
9590: 61 72 20 68 65 61 64 54 61 67 20 3d 20 64 6f 63 ar headTag = doc
95a0: 75 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65 6e 74 ument.getElement
95b0: 73 42 79 54 61 67 4e 61 6d 65 28 22 68 65 61 64 sByTagName("head
95c0: 22 29 5b 30 5d 3b 0d 0a 0d 0a 20 20 20 20 20 20 ")[0];....
95d0: 20 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 31 for (var i = 1
95e0: 3b 20 69 20 3c 3d 20 6c 69 6e 65 73 2e 6c 65 6e ; i <= lines.len
95f0: 67 74 68 3b 20 69 2b 2b 29 20 7b 0d 0a 20 20 20 gth; i++) {..
9600: 20 20 20 20 20 20 20 20 20 76 61 72 20 76 61 6c var val
9610: 75 65 20 3d 20 6c 69 6e 65 73 5b 69 20 2d 20 31 ue = lines[i - 1
9620: 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ];..
9630: 69 66 20 28 69 20 3d 3d 20 31 29 20 7b 0d 0a 20 if (i == 1) {..
9640: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
9650: 61 6c 75 65 20 3d 20 6c 6f 67 67 69 6e 67 45 76 alue = loggingEv
9660: 65 6e 74 2e 6c 65 76 65 6c 2e 74 6f 53 74 72 69 ent.level.toStri
9670: 6e 67 28 29 20 2b 20 22 3a 20 22 20 2b 20 76 61 ng() + ": " + va
9680: 6c 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 lue;..
9690: 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 } else {..
96a0: 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 valu
96b0: 65 20 3d 20 22 3e 20 22 20 2b 20 76 61 6c 75 65 e = "> " + value
96c0: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d ;.. }
96d0: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....
96e0: 76 61 72 20 6d 65 74 61 54 61 67 20 3d 20 64 6f var metaTag = do
96f0: 63 75 6d 65 6e 74 2e 63 72 65 61 74 65 45 6c 65 cument.createEle
9700: 6d 65 6e 74 28 22 6d 65 74 61 22 29 3b 0d 0a 20 ment("meta");..
9710: 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 54 metaT
9720: 61 67 2e 73 65 74 41 74 74 72 69 62 75 74 65 28 ag.setAttribute(
9730: 22 6e 61 6d 65 22 2c 20 22 58 2d 6c 6f 67 34 6a "name", "X-log4j
9740: 73 3a 22 20 2b 20 74 68 69 73 2e 63 75 72 72 65 s:" + this.curre
9750: 6e 74 4c 69 6e 65 29 3b 0d 0a 20 20 20 20 20 20 ntLine);..
9760: 20 20 20 20 20 20 6d 65 74 61 54 61 67 2e 73 65 metaTag.se
9770: 74 41 74 74 72 69 62 75 74 65 28 22 63 6f 6e 74 tAttribute("cont
9780: 65 6e 74 22 2c 20 76 61 6c 75 65 29 3b 0d 0a 20 ent", value);..
9790: 20 20 20 20 20 20 20 20 20 20 20 68 65 61 64 54 headT
97a0: 61 67 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 6d ag.appendChild(m
97b0: 65 74 61 54 61 67 29 3b 0d 0a 20 20 20 20 20 20 etaTag);..
97c0: 20 20 20 20 20 20 74 68 69 73 2e 63 75 72 72 65 this.curre
97d0: 6e 74 4c 69 6e 65 20 2b 3d 20 31 3b 0d 0a 20 20 ntLine += 1;..
97e0: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d }.. },.
97f0: 0a 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 ... /** ..
9800: 20 2a 20 74 6f 53 74 72 69 6e 67 0d 0a 20 20 20 * toString..
9810: 20 2a 2f 0d 0a 20 20 20 20 74 6f 53 74 72 69 6e */.. toStrin
9820: 67 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d g: function() {.
9830: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
9840: 22 4c 6f 67 34 6a 73 2e 4d 65 74 61 74 61 67 41 "Log4js.MetatagA
9850: 70 70 65 6e 64 65 72 22 3b 20 0d 0a 20 20 20 20 ppender"; ..
9860: 7d 0d 0a 7d 29 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a }..});..../**..*
9870: 20 41 4a 41 58 20 41 70 70 65 6e 64 65 72 20 73 AJAX Appender s
9880: 65 6e 64 69 6e 67 20 7b 40 6c 69 6e 6b 20 4c 6f ending {@link Lo
9890: 67 34 6a 73 2e 4c 6f 67 67 69 6e 67 45 76 65 6e g4js.LoggingEven
98a0: 74 7d 73 20 61 73 79 6e 63 68 72 6f 6e 20 76 69 t}s asynchron vi
98b0: 61 20 0d 0a 2a 20 3c 63 6f 64 65 3e 58 4d 4c 48 a ..* <code>XMLH
98c0: 74 74 70 52 65 71 75 65 73 74 3c 2f 63 6f 64 65 ttpRequest</code
98d0: 3e 20 74 6f 20 73 65 72 76 65 72 2e 3c 62 72 20 > to server.<br
98e0: 2f 3e 0d 0a 2a 20 54 68 65 20 7b 40 6c 69 6e 6b />..* The {@link
98f0: 20 4c 6f 67 34 6a 73 2e 4c 6f 67 67 69 6e 67 45 Log4js.LoggingE
9900: 76 65 6e 74 7d 20 69 73 20 50 4f 53 54 65 64 20 vent} is POSTed
9910: 61 73 20 72 65 73 70 6f 6e 73 65 20 63 6f 6e 74 as response cont
9920: 65 6e 74 20 61 6e 64 20 69 73 20 0d 0a 2a 20 66 ent and is ..* f
9930: 6f 72 6d 61 74 74 65 64 20 62 79 20 74 68 65 20 ormatted by the
9940: 61 63 63 6f 63 69 61 74 65 64 20 6c 61 79 6f 75 accociated layou
9950: 74 2e 20 44 65 66 61 75 6c 74 20 6c 61 79 6f 75 t. Default layou
9960: 74 20 69 73 20 7b 40 6c 69 6e 6b 20 4c 6f 67 34 t is {@link Log4
9970: 6a 73 2e 58 4d 4c 4c 61 79 6f 75 74 7d 2e 20 0d js.XMLLayout}. .
9980: 0a 2a 20 54 68 65 20 3c 63 6f 64 65 3e 74 68 72 .* The <code>thr
9990: 65 73 68 6f 6c 64 3c 2f 63 6f 64 65 3e 20 64 65 eshold</code> de
99a0: 66 69 6e 65 73 20 77 68 65 6e 20 74 68 65 20 6c fines when the l
99b0: 6f 67 73 20 0d 0a 2a 20 73 68 6f 75 6c 64 20 62 ogs ..* should b
99c0: 65 20 73 65 6e 64 20 74 6f 20 74 68 65 20 73 65 e send to the se
99d0: 72 76 65 72 2e 20 42 79 20 64 65 66 61 75 6c 74 rver. By default
99e0: 20 65 76 65 72 79 20 65 76 65 6e 74 20 69 73 20 every event is
99f0: 73 65 6e 74 20 6f 6e 20 69 74 73 0d 0a 2a 20 6f sent on its..* o
9a00: 77 6e 20 28 74 68 72 65 73 68 6f 6c 64 3d 31 29 wn (threshold=1)
9a10: 2e 20 49 66 20 69 74 20 69 73 20 73 65 74 20 74 . If it is set t
9a20: 6f 20 31 30 2c 20 74 68 65 6e 20 74 68 65 20 65 o 10, then the e
9a30: 76 65 6e 74 73 20 61 72 65 20 73 65 6e 64 20 69 vents are send i
9a40: 6e 20 67 72 6f 75 70 73 20 6f 66 0d 0a 2a 20 31 n groups of..* 1
9a50: 30 20 65 76 65 6e 74 73 2e 0d 0a 2a 0d 0a 2a 20 0 events...*..*
9a60: 40 65 78 74 65 6e 64 73 20 4c 6f 67 34 6a 73 2e @extends Log4js.
9a70: 41 70 70 65 6e 64 65 72 20 0d 0a 2a 20 40 63 6f Appender ..* @co
9a80: 6e 73 74 72 75 63 74 6f 72 0d 0a 2a 20 40 70 61 nstructor..* @pa
9a90: 72 61 6d 20 7b 4c 6f 67 34 6a 73 2e 4c 6f 67 67 ram {Log4js.Logg
9aa0: 65 72 7d 20 6c 6f 67 67 65 72 20 6c 6f 67 34 6a er} logger log4j
9ab0: 73 20 69 6e 73 74 61 6e 63 65 20 74 68 69 73 20 s instance this
9ac0: 61 70 70 65 6e 64 65 72 20 69 73 20 61 74 74 61 appender is atta
9ad0: 63 68 65 64 20 74 6f 0d 0a 2a 20 40 70 61 72 61 ched to..* @para
9ae0: 6d 20 7b 53 74 72 69 6e 67 7d 20 6c 6f 67 67 69 m {String} loggi
9af0: 6e 67 55 72 6c 20 75 72 6c 20 77 68 65 72 65 20 ngUrl url where
9b00: 61 70 70 65 6e 64 65 72 20 77 69 6c 6c 20 70 6f appender will po
9b10: 73 74 20 6c 6f 67 20 6d 65 73 73 61 67 65 73 20 st log messages
9b20: 74 6f 0d 0a 2a 20 40 61 75 74 68 6f 72 20 53 74 to..* @author St
9b30: 65 70 68 61 6e 20 53 74 72 69 74 74 6d 61 74 74 ephan Strittmatt
9b40: 65 72 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e 41 er..*/..Log4js.A
9b50: 6a 61 78 41 70 70 65 6e 64 65 72 20 3d 20 66 75 jaxAppender = fu
9b60: 6e 63 74 69 6f 6e 28 6c 6f 67 67 69 6e 67 55 72 nction(loggingUr
9b70: 6c 29 20 7b 0d 0a 0d 0a 20 20 20 20 2f 2a 2a 0d l) {.... /**.
9b80: 0a 20 20 20 20 2a 20 69 73 20 73 74 69 6c 6c 20 . * is still
9b90: 65 73 6e 64 69 6e 67 20 64 61 74 61 20 74 6f 20 esnding data to
9ba0: 73 65 72 76 65 72 0d 0a 20 20 20 20 2a 20 40 74 server.. * @t
9bb0: 79 70 65 20 62 6f 6f 6c 65 61 6e 0d 0a 20 20 20 ype boolean..
9bc0: 20 2a 20 40 70 72 69 76 61 74 65 0d 0a 20 20 20 * @private..
9bd0: 20 2a 2f 0d 0a 20 20 20 20 74 68 69 73 2e 69 73 */.. this.is
9be0: 49 6e 50 72 6f 67 72 65 73 73 20 3d 20 66 61 6c InProgress = fal
9bf0: 73 65 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f se;.. .. /
9c00: 2a 2a 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 **.. * @type
9c10: 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 20 40 70 String.. * @p
9c20: 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d 0a rivate.. */..
9c30: 20 20 20 20 74 68 69 73 2e 6c 6f 67 67 69 6e 67 this.logging
9c40: 55 72 6c 20 3d 20 6c 6f 67 67 69 6e 67 55 72 6c Url = loggingUrl
9c50: 20 7c 7c 20 22 6c 6f 67 67 69 6e 67 2e 6c 6f 67 || "logging.log
9c60: 34 6a 73 22 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 4js";.. ..
9c70: 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 40 74 79 70 /**.. * @typ
9c80: 65 20 49 6e 74 65 67 65 72 0d 0a 20 20 20 20 2a e Integer.. *
9c90: 20 40 70 72 69 76 61 74 65 0d 0a 20 20 20 20 2a @private.. *
9ca0: 2f 0d 0a 20 20 20 20 74 68 69 73 2e 74 68 72 65 /.. this.thre
9cb0: 73 68 6f 6c 64 20 3d 20 31 3b 0d 0a 20 20 20 20 shold = 1;..
9cc0: 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a .. /**.. *
9cd0: 20 74 69 6d 65 6f 75 74 20 77 68 65 6e 20 72 65 timeout when re
9ce0: 71 75 65 73 74 20 69 73 20 61 62 6f 72 74 65 64 quest is aborted
9cf0: 2e 0d 0a 20 20 20 20 2a 20 40 70 72 69 76 61 74 ... * @privat
9d00: 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 e.. */.. t
9d10: 68 69 73 2e 74 69 6d 65 6f 75 74 20 3d 20 32 30 his.timeout = 20
9d20: 30 30 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 00;.. .. /
9d30: 2a 2a 0d 0a 20 20 20 20 2a 20 4c 69 73 74 20 6f **.. * List o
9d40: 66 20 4c 6f 67 67 69 6e 67 45 76 65 6e 74 73 20 f LoggingEvents
9d50: 77 68 69 63 68 20 73 68 6f 75 6c 64 20 62 65 20 which should be
9d60: 73 65 6e 64 20 61 66 74 65 72 20 74 68 72 65 73 send after thres
9d70: 68 6f 6c 64 20 69 73 20 72 65 61 63 68 65 64 2e hold is reached.
9d80: 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 4d 61 .. * @type Ma
9d90: 70 0d 0a 20 20 20 20 2a 20 40 70 72 69 76 61 74 p.. * @privat
9da0: 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 e.. */.. t
9db0: 68 69 73 2e 6c 6f 67 67 69 6e 67 45 76 65 6e 74 his.loggingEvent
9dc0: 4d 61 70 20 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 Map = new Log4js
9dd0: 2e 46 69 66 6f 42 75 66 66 65 72 28 29 3b 0d 0a .FifoBuffer();..
9de0: 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a .. /**.. *
9df0: 20 40 74 79 70 65 20 4c 6f 67 34 6a 73 2e 4c 61 @type Log4js.La
9e00: 79 6f 75 74 0d 0a 20 20 20 20 2a 20 40 70 72 69 yout.. * @pri
9e10: 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 vate.. */..
9e20: 20 20 74 68 69 73 2e 6c 61 79 6f 75 74 20 3d 20 this.layout =
9e30: 6e 65 77 20 4c 6f 67 34 6a 73 2e 58 4d 4c 4c 61 new Log4js.XMLLa
9e40: 79 6f 75 74 28 29 3b 0d 0a 20 20 20 20 2f 2a 2a yout();.. /**
9e50: 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 58 4d .. * @type XM
9e60: 4c 48 74 74 70 52 65 71 75 65 73 74 0d 0a 20 20 LHttpRequest..
9e70: 20 20 2a 20 40 70 72 69 76 61 74 65 0d 0a 20 20 * @private..
9e80: 20 20 2a 2f 09 0d 0a 20 20 20 20 74 68 69 73 2e */... this.
9e90: 68 74 74 70 52 65 71 75 65 73 74 20 3d 20 6e 75 httpRequest = nu
9ea0: 6c 6c 3b 0d 0a 7d 3b 0d 0a 0d 0a 4c 6f 67 34 6a ll;..};....Log4j
9eb0: 73 2e 41 6a 61 78 41 70 70 65 6e 64 65 72 2e 70 s.AjaxAppender.p
9ec0: 72 6f 74 6f 74 79 70 65 20 3d 20 4c 6f 67 34 6a rototype = Log4j
9ed0: 73 2e 65 78 74 65 6e 64 28 6e 65 77 20 4c 6f 67 s.extend(new Log
9ee0: 34 6a 73 2e 41 70 70 65 6e 64 65 72 28 29 2c 20 4js.Appender(),
9ef0: 7b 20 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 { .. /**..
9f00: 20 20 2a 20 73 65 6e 64 73 20 74 68 65 20 6c 6f * sends the lo
9f10: 67 73 20 74 6f 20 74 68 65 20 73 65 72 76 65 72 gs to the server
9f20: 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 6d 20 6c .. * @param l
9f30: 6f 67 67 69 6e 67 45 76 65 6e 74 20 65 76 65 6e oggingEvent even
9f40: 74 20 74 6f 20 62 65 20 6c 6f 67 67 65 64 0d 0a t to be logged..
9f50: 20 20 20 20 2a 20 40 73 65 65 20 4c 6f 67 34 6a * @see Log4j
9f60: 73 2e 41 70 70 65 6e 64 65 72 23 64 6f 41 70 70 s.Appender#doApp
9f70: 65 6e 64 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 end.. */..
9f80: 20 64 6f 41 70 70 65 6e 64 3a 20 66 75 6e 63 74 doAppend: funct
9f90: 69 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 ion(loggingEvent
9fa0: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 6c 6f 67 ) {.. log
9fb0: 34 6a 73 4c 6f 67 67 65 72 2e 74 72 61 63 65 28 4jsLogger.trace(
9fc0: 22 3e 20 41 6a 61 78 41 70 70 65 6e 64 65 72 2e "> AjaxAppender.
9fd0: 61 70 70 65 6e 64 22 29 3b 0d 0a 20 20 20 20 0d append");.. .
9fe0: 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 . if (thi
9ff0: 73 2e 6c 6f 67 67 69 6e 67 45 76 65 6e 74 4d 61 s.loggingEventMa
a000: 70 2e 6c 65 6e 67 74 68 28 29 20 3c 3d 20 74 68 p.length() <= th
a010: 69 73 2e 74 68 72 65 73 68 6f 6c 64 20 7c 7c 20 is.threshold ||
a020: 74 68 69 73 2e 69 73 49 6e 50 72 6f 67 72 65 73 this.isInProgres
a030: 73 20 3d 3d 3d 20 74 72 75 65 29 20 7b 0d 0a 20 s === true) {..
a040: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
a050: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 4d 61 70 2e loggingEventMap.
a060: 70 75 73 68 28 6c 6f 67 67 69 6e 67 45 76 65 6e push(loggingEven
a070: 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a t);.. }..
a080: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 ..
a090: 20 20 69 66 28 74 68 69 73 2e 6c 6f 67 67 69 6e if(this.loggin
a0a0: 67 45 76 65 6e 74 4d 61 70 2e 6c 65 6e 67 74 68 gEventMap.length
a0b0: 28 29 20 3e 3d 20 74 68 69 73 2e 74 68 72 65 73 () >= this.thres
a0c0: 68 6f 6c 64 20 26 26 20 74 68 69 73 2e 69 73 49 hold && this.isI
a0d0: 6e 50 72 6f 67 72 65 73 73 20 3d 3d 3d 20 66 61 nProgress === fa
a0e0: 6c 73 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 lse) {..
a0f0: 20 20 20 20 2f 2f 69 66 20 74 68 72 65 73 68 6f //if thresho
a100: 6c 64 20 69 73 20 72 65 61 63 68 65 64 20 73 65 ld is reached se
a110: 6e 64 20 74 68 65 20 65 76 65 6e 74 73 20 61 6e nd the events an
a120: 64 20 72 65 73 65 74 20 63 75 72 72 65 6e 74 20 d reset current
a130: 74 68 72 65 73 68 6f 6c 64 0d 0a 20 20 20 20 20 threshold..
a140: 20 20 20 20 20 20 20 74 68 69 73 2e 73 65 6e 64 this.send
a150: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a ();.. }..
a160: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 ..
a170: 20 20 6c 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 74 log4jsLogger.t
a180: 72 61 63 65 28 22 3c 20 41 6a 61 78 41 70 70 65 race("< AjaxAppe
a190: 6e 64 65 72 2e 61 70 70 65 6e 64 22 29 3b 0d 0a nder.append");..
a1a0: 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 20 },.. ..
a1b0: 20 20 2f 2a 2a 20 40 73 65 65 20 41 70 70 65 6e /** @see Appen
a1c0: 64 65 72 23 64 6f 43 6c 65 61 72 20 2a 2f 0d 0a der#doClear */..
a1d0: 20 20 20 20 64 6f 43 6c 65 61 72 3a 20 66 75 6e doClear: fun
a1e0: 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 ction() {..
a1f0: 20 20 20 6c 6f 67 34 6a 73 4c 6f 67 67 65 72 2e log4jsLogger.
a200: 74 72 61 63 65 28 22 3e 20 41 6a 61 78 41 70 70 trace("> AjaxApp
a210: 65 6e 64 65 72 2e 64 6f 43 6c 65 61 72 22 20 29 ender.doClear" )
a220: 3b 0d 0a 20 20 20 20 20 20 20 20 69 66 28 74 68 ;.. if(th
a230: 69 73 2e 6c 6f 67 67 69 6e 67 45 76 65 6e 74 4d is.loggingEventM
a240: 61 70 2e 6c 65 6e 67 74 68 28 29 20 3e 20 30 29 ap.length() > 0)
a250: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
a260: 74 68 69 73 2e 73 65 6e 64 28 29 3b 0d 0a 20 20 this.send();..
a270: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
a280: 20 6c 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 74 72 log4jsLogger.tr
a290: 61 63 65 28 22 3c 20 41 6a 61 78 41 70 70 65 6e ace("< AjaxAppen
a2a0: 64 65 72 2e 64 6f 43 6c 65 61 72 22 20 29 3b 0d der.doClear" );.
a2b0: 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 . },.. ..
a2c0: 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 53 65 /**.. * Se
a2d0: 74 20 74 68 65 20 74 68 72 65 73 68 6f 6c 64 20 t the threshold
a2e0: 77 68 65 6e 20 6c 6f 67 73 20 68 61 76 65 20 74 when logs have t
a2f0: 6f 20 62 65 20 73 65 6e 64 2e 20 44 65 66 61 75 o be send. Defau
a300: 6c 74 20 74 68 72 65 73 68 6f 6c 64 20 69 73 20 lt threshold is
a310: 31 2e 0d 0a 20 20 20 20 2a 20 40 70 72 61 72 61 1... * @prara
a320: 6d 20 7b 69 6e 74 7d 20 74 68 72 65 73 68 6f 6c m {int} threshol
a330: 64 20 6e 65 77 20 74 68 72 65 73 68 6f 6c 64 0d d new threshold.
a340: 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 73 65 74 . */.. set
a350: 54 68 72 65 73 68 6f 6c 64 3a 20 66 75 6e 63 74 Threshold: funct
a360: 69 6f 6e 28 74 68 72 65 73 68 6f 6c 64 29 20 7b ion(threshold) {
a370: 0d 0a 20 20 20 20 20 20 20 20 6c 6f 67 34 6a 73 .. log4js
a380: 4c 6f 67 67 65 72 2e 74 72 61 63 65 28 22 3e 20 Logger.trace(">
a390: 41 6a 61 78 41 70 70 65 6e 64 65 72 2e 73 65 74 AjaxAppender.set
a3a0: 54 68 72 65 73 68 6f 6c 64 3a 20 22 20 2b 20 74 Threshold: " + t
a3b0: 68 72 65 73 68 6f 6c 64 20 29 3b 0d 0a 20 20 20 hreshold );..
a3c0: 20 20 20 20 20 74 68 69 73 2e 74 68 72 65 73 68 this.thresh
a3d0: 6f 6c 64 20 3d 20 74 68 72 65 73 68 6f 6c 64 3b old = threshold;
a3e0: 0d 0a 20 20 20 20 20 20 20 20 6c 6f 67 34 6a 73 .. log4js
a3f0: 4c 6f 67 67 65 72 2e 74 72 61 63 65 28 22 3c 20 Logger.trace("<
a400: 41 6a 61 78 41 70 70 65 6e 64 65 72 2e 73 65 74 AjaxAppender.set
a410: 54 68 72 65 73 68 6f 6c 64 22 20 29 3b 0d 0a 20 Threshold" );..
a420: 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 20 20 },.. ..
a430: 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 53 65 74 20 /**.. * Set
a440: 74 68 65 20 74 69 6d 65 6f 75 74 20 69 6e 20 6d the timeout in m
a450: 69 6c 6c 69 20 73 65 63 6f 6e 64 73 20 75 6e 74 illi seconds unt
a460: 69 6c 20 73 65 6e 64 69 6e 67 20 72 65 71 75 65 il sending reque
a470: 73 74 20 69 73 20 61 62 6f 72 74 65 64 2e 0d 0a st is aborted...
a480: 20 20 20 20 2a 20 44 65 66 61 75 6c 74 20 69 73 * Default is
a490: 20 32 30 30 30 20 6d 73 2e 0d 0a 20 20 20 20 2a 2000 ms... *
a4a0: 20 40 70 61 72 61 6d 20 7b 69 6e 74 7d 20 6d 69 @param {int} mi
a4b0: 6c 6c 69 73 65 63 6f 6e 64 73 20 74 68 65 20 6e lliseconds the n
a4c0: 65 77 20 74 69 6d 65 6f 75 74 0d 0a 20 20 20 20 ew timeout..
a4d0: 2a 2f 0d 0a 20 20 20 20 73 65 74 54 69 6d 65 6f */.. setTimeo
a4e0: 75 74 3a 20 66 75 6e 63 74 69 6f 6e 28 6d 69 6c ut: function(mil
a4f0: 6c 69 73 65 63 6f 6e 64 73 29 20 7b 0d 0a 20 20 liseconds) {..
a500: 20 20 20 20 20 20 74 68 69 73 2e 74 69 6d 65 6f this.timeo
a510: 75 74 20 3d 20 6d 69 6c 6c 69 73 65 63 6f 6e 64 ut = millisecond
a520: 73 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 s;.. },..
a530: 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a .. /**.. *
a540: 20 73 65 6e 64 20 74 68 65 20 72 65 71 75 65 73 send the reques
a550: 74 2e 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 t... */..
a560: 73 65 6e 64 3a 20 66 75 6e 63 74 69 6f 6e 28 29 send: function()
a570: 20 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 28 74 {.. if(t
a580: 68 69 73 2e 6c 6f 67 67 69 6e 67 45 76 65 6e 74 his.loggingEvent
a590: 4d 61 70 2e 6c 65 6e 67 74 68 28 29 20 3e 30 29 Map.length() >0)
a5a0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
a5b0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f .. lo
a5c0: 67 34 6a 73 4c 6f 67 67 65 72 2e 74 72 61 63 65 g4jsLogger.trace
a5d0: 28 22 3e 20 41 6a 61 78 41 70 70 65 6e 64 65 72 ("> AjaxAppender
a5e0: 2e 73 65 6e 64 22 29 3b 0d 0a 20 20 20 20 20 20 .send");..
a5f0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
a600: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 ..
a610: 20 20 74 68 69 73 2e 69 73 49 6e 50 72 6f 67 72 this.isInProgr
a620: 65 73 73 20 3d 20 74 72 75 65 3b 0d 0a 20 20 20 ess = true;..
a630: 20 20 20 20 20 20 20 20 20 76 61 72 20 61 20 3d var a =
a640: 20 5b 5d 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 [];.. ..
a650: 20 20 20 20 20 20 20 20 66 6f 72 28 76 61 72 20 for(var
a660: 69 20 3d 20 30 3b 20 69 20 3c 20 74 68 69 73 2e i = 0; i < this.
a670: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 4d 61 70 2e loggingEventMap.
a680: 6c 65 6e 67 74 68 28 29 20 26 26 20 69 20 3c 20 length() && i <
a690: 74 68 69 73 2e 74 68 72 65 73 68 6f 6c 64 3b 20 this.threshold;
a6a0: 69 2b 2b 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 i++) {..
a6b0: 20 20 20 20 20 20 20 20 61 2e 70 75 73 68 28 74 a.push(t
a6c0: 68 69 73 2e 6c 61 79 6f 75 74 2e 66 6f 72 6d 61 his.layout.forma
a6d0: 74 28 74 68 69 73 2e 6c 6f 67 67 69 6e 67 45 76 t(this.loggingEv
a6e0: 65 6e 74 4d 61 70 2e 70 75 6c 6c 28 29 29 29 3b entMap.pull()));
a6f0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 .. }
a700: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
a710: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
a720: 20 20 20 20 76 61 72 20 63 6f 6e 74 65 6e 74 20 var content
a730: 3d 20 74 68 69 73 2e 6c 61 79 6f 75 74 2e 67 65 = this.layout.ge
a740: 74 48 65 61 64 65 72 28 29 3b 09 0d 0a 20 20 20 tHeader();...
a750: 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 content
a760: 20 2b 3d 20 61 2e 6a 6f 69 6e 28 74 68 69 73 2e += a.join(this.
a770: 6c 61 79 6f 75 74 2e 67 65 74 53 65 70 61 72 61 layout.getSepara
a780: 74 6f 72 28 29 29 3b 0d 0a 20 20 20 20 20 20 20 tor());..
a790: 20 20 20 20 20 63 6f 6e 74 65 6e 74 20 2b 3d 20 content +=
a7a0: 74 68 69 73 2e 6c 61 79 6f 75 74 2e 67 65 74 46 this.layout.getF
a7b0: 6f 6f 74 65 72 28 29 3b 0d 0a 20 20 20 20 20 20 ooter();..
a7c0: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
a7d0: 20 20 20 20 76 61 72 20 61 70 70 65 6e 64 65 72 var appender
a7e0: 20 3d 20 74 68 69 73 3b 0d 0a 20 20 20 20 20 20 = this;..
a7f0: 20 20 20 20 20 20 69 66 28 74 68 69 73 2e 68 74 if(this.ht
a800: 74 70 52 65 71 75 65 73 74 20 3d 3d 3d 20 6e 75 tpRequest === nu
a810: 6c 6c 29 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 ll){..
a820: 20 20 20 20 20 20 74 68 69 73 2e 68 74 74 70 52 this.httpR
a830: 65 71 75 65 73 74 20 3d 20 74 68 69 73 2e 67 65 equest = this.ge
a840: 74 58 6d 6c 48 74 74 70 52 65 71 75 65 73 74 28 tXmlHttpRequest(
a850: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 );..
a860: 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 }.. t
a870: 68 69 73 2e 68 74 74 70 52 65 71 75 65 73 74 2e his.httpRequest.
a880: 6f 6e 72 65 61 64 79 73 74 61 74 65 63 68 61 6e onreadystatechan
a890: 67 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 ge = function()
a8a0: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
a8b0: 20 20 20 61 70 70 65 6e 64 65 72 2e 6f 6e 52 65 appender.onRe
a8c0: 61 64 79 53 74 61 74 65 43 68 61 6e 67 65 64 2e adyStateChanged.
a8d0: 63 61 6c 6c 28 61 70 70 65 6e 64 65 72 29 3b 0d call(appender);.
a8e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 3b 0d . };.
a8f0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 . ..
a900: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e this.
a910: 68 74 74 70 52 65 71 75 65 73 74 2e 6f 70 65 6e httpRequest.open
a920: 28 22 50 4f 53 54 22 2c 20 74 68 69 73 2e 6c 6f ("POST", this.lo
a930: 67 67 69 6e 67 55 72 6c 2c 20 74 72 75 65 29 3b ggingUrl, true);
a940: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f .. //
a950: 20 73 65 74 20 74 68 65 20 72 65 71 75 65 73 74 set the request
a960: 20 68 65 61 64 65 72 73 2e 0d 0a 20 20 20 20 20 headers...
a970: 20 20 20 20 20 20 20 2f 2f 74 68 69 73 2e 68 74 //this.ht
a980: 74 70 52 65 71 75 65 73 74 2e 73 65 74 52 65 71 tpRequest.setReq
a990: 75 65 73 74 48 65 61 64 65 72 28 22 43 6f 6e 74 uestHeader("Cont
a9a0: 65 6e 74 2d 74 79 70 65 22 2c 20 22 61 70 70 6c ent-type", "appl
a9b0: 69 63 61 74 69 6f 6e 2f 78 2d 77 77 77 2d 66 6f ication/x-www-fo
a9c0: 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 22 29 3b rm-urlencoded");
a9d0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 .. th
a9e0: 69 73 2e 68 74 74 70 52 65 71 75 65 73 74 2e 73 is.httpRequest.s
a9f0: 65 74 52 65 71 75 65 73 74 48 65 61 64 65 72 28 etRequestHeader(
aa00: 22 43 6f 6e 74 65 6e 74 2d 74 79 70 65 22 2c 20 "Content-type",
aa10: 74 68 69 73 2e 6c 61 79 6f 75 74 2e 67 65 74 43 this.layout.getC
aa20: 6f 6e 74 65 6e 74 54 79 70 65 28 29 29 3b 0d 0a ontentType());..
aa30: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 52 45 //RE
aa40: 46 45 52 45 52 20 77 69 6c 6c 20 62 65 20 74 68 FERER will be th
aa50: 65 20 74 6f 70 2d 6c 65 76 65 6c 0d 0a 20 20 20 e top-level..
aa60: 20 20 20 20 20 20 20 20 20 2f 2f 20 55 52 49 20 // URI
aa70: 77 68 69 63 68 20 6d 61 79 20 64 69 66 66 65 72 which may differ
aa80: 20 66 72 6f 6d 20 74 68 65 20 6c 6f 63 61 74 69 from the locati
aa90: 6f 6e 20 6f 66 20 74 68 65 20 65 72 72 6f 72 20 on of the error
aaa0: 69 66 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 if..
aab0: 2f 2f 20 69 74 20 6f 63 63 75 72 73 20 69 6e 20 // it occurs in
aac0: 61 6e 20 69 6e 63 6c 75 64 65 64 20 2e 6a 73 20 an included .js
aad0: 66 69 6c 65 0d 0a 20 20 20 20 20 20 20 20 20 20 file..
aae0: 20 20 74 68 69 73 2e 68 74 74 70 52 65 71 75 65 this.httpReque
aaf0: 73 74 2e 73 65 74 52 65 71 75 65 73 74 48 65 61 st.setRequestHea
ab00: 64 65 72 28 22 52 45 46 45 52 45 52 22 2c 20 6c der("REFERER", l
ab10: 6f 63 61 74 69 6f 6e 2e 68 72 65 66 29 3b 0d 0a ocation.href);..
ab20: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
ab30: 2e 68 74 74 70 52 65 71 75 65 73 74 2e 73 65 74 .httpRequest.set
ab40: 52 65 71 75 65 73 74 48 65 61 64 65 72 28 22 43 RequestHeader("C
ab50: 6f 6e 74 65 6e 74 2d 6c 65 6e 67 74 68 22 2c 20 ontent-length",
ab60: 63 6f 6e 74 65 6e 74 2e 6c 65 6e 67 74 68 29 3b content.length);
ab70: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 .. th
ab80: 69 73 2e 68 74 74 70 52 65 71 75 65 73 74 2e 73 is.httpRequest.s
ab90: 65 74 52 65 71 75 65 73 74 48 65 61 64 65 72 28 etRequestHeader(
aba0: 22 43 6f 6e 6e 65 63 74 69 6f 6e 22 2c 20 22 63 "Connection", "c
abb0: 6c 6f 73 65 22 29 3b 0d 0a 20 20 20 20 20 20 20 lose");..
abc0: 20 20 20 20 20 74 68 69 73 2e 68 74 74 70 52 65 this.httpRe
abd0: 71 75 65 73 74 2e 73 65 6e 64 28 20 63 6f 6e 74 quest.send( cont
abe0: 65 6e 74 20 29 3b 0d 0a 20 20 20 20 20 20 20 20 ent );..
abf0: 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 ..
ac00: 20 20 61 70 70 65 6e 64 65 72 20 3d 20 74 68 69 appender = thi
ac10: 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 s;..
ac20: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 72 .. tr
ac30: 79 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 y {..
ac40: 20 20 20 20 20 77 69 6e 64 6f 77 2e 73 65 74 54 window.setT
ac50: 69 6d 65 6f 75 74 28 66 75 6e 63 74 69 6f 6e 28 imeout(function(
ac60: 29 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ){..
ac70: 20 20 20 20 20 20 20 20 6c 6f 67 34 6a 73 4c 6f log4jsLo
ac80: 67 67 65 72 2e 74 72 61 63 65 28 22 3e 20 41 6a gger.trace("> Aj
ac90: 61 78 41 70 70 65 6e 64 65 72 2e 74 69 6d 65 6f axAppender.timeo
aca0: 75 74 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 ut");..
acb0: 20 20 20 20 20 20 20 20 20 20 20 61 70 70 65 6e appen
acc0: 64 65 72 2e 68 74 74 70 52 65 71 75 65 73 74 2e der.httpRequest.
acd0: 6f 6e 72 65 61 64 79 73 74 61 74 65 63 68 61 6e onreadystatechan
ace0: 67 65 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 7b ge = function(){
acf0: 72 65 74 75 72 6e 3b 7d 3b 0d 0a 20 20 20 20 20 return;};..
ad00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 a
ad10: 70 70 65 6e 64 65 72 2e 68 74 74 70 52 65 71 75 ppender.httpRequ
ad20: 65 73 74 2e 61 62 6f 72 74 28 29 3b 0d 0a 20 20 est.abort();..
ad30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
ad40: 20 20 2f 2f 74 68 69 73 2e 68 74 74 70 52 65 71 //this.httpReq
ad50: 75 65 73 74 20 3d 20 6e 75 6c 6c 3b 0d 0a 20 20 uest = null;..
ad60: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
ad70: 20 20 61 70 70 65 6e 64 65 72 2e 69 73 49 6e 50 appender.isInP
ad80: 72 6f 67 72 65 73 73 20 3d 20 66 61 6c 73 65 3b rogress = false;
ad90: 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 .. ..
ada0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
adb0: 69 66 28 61 70 70 65 6e 64 65 72 2e 6c 6f 67 67 if(appender.logg
adc0: 69 6e 67 45 76 65 6e 74 4d 61 70 2e 6c 65 6e 67 ingEventMap.leng
add0: 74 68 28 29 20 3e 20 30 29 20 7b 0d 0a 20 20 20 th() > 0) {..
ade0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
adf0: 20 20 20 20 20 61 70 70 65 6e 64 65 72 2e 73 65 appender.se
ae00: 6e 64 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 nd();..
ae10: 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 }..
ae20: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
ae30: 20 20 6c 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 74 log4jsLogger.t
ae40: 72 61 63 65 28 22 3c 20 41 6a 61 78 41 70 70 65 race("< AjaxAppe
ae50: 6e 64 65 72 2e 74 69 6d 65 6f 75 74 22 29 3b 0d nder.timeout");.
ae60: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
ae70: 20 7d 2c 20 74 68 69 73 2e 74 69 6d 65 6f 75 74 }, this.timeout
ae80: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 );..
ae90: 7d 20 63 61 74 63 68 20 28 65 29 20 7b 0d 0a 20 } catch (e) {..
aea0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c l
aeb0: 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 66 61 74 61 og4jsLogger.fata
aec0: 6c 28 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 l(e);..
aed0: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 }..
aee0: 20 20 6c 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 74 log4jsLogger.t
aef0: 72 61 63 65 28 22 3e 20 41 6a 61 78 41 70 70 65 race("> AjaxAppe
af00: 6e 64 65 72 2e 73 65 6e 64 22 29 3b 0d 0a 20 20 nder.send");..
af10: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d }.. },.
af20: 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a . .. /**..
af30: 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 0d 0a * @private..
af40: 20 20 20 20 2a 2f 0d 0a 20 20 20 20 6f 6e 52 65 */.. onRe
af50: 61 64 79 53 74 61 74 65 43 68 61 6e 67 65 64 3a adyStateChanged:
af60: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 function() {..
af70: 20 20 20 20 20 20 20 6c 6f 67 34 6a 73 4c 6f 67 log4jsLog
af80: 67 65 72 2e 74 72 61 63 65 28 22 3e 20 41 6a 61 ger.trace("> Aja
af90: 78 41 70 70 65 6e 64 65 72 2e 6f 6e 52 65 61 64 xAppender.onRead
afa0: 79 53 74 61 74 65 43 68 61 6e 67 65 64 22 29 3b yStateChanged");
afb0: 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 72 65 .. var re
afc0: 71 20 3d 20 74 68 69 73 2e 68 74 74 70 52 65 71 q = this.httpReq
afd0: 75 65 73 74 3b 0d 0a 20 20 20 20 20 20 20 20 69 uest;.. i
afe0: 66 20 28 74 68 69 73 2e 68 74 74 70 52 65 71 75 f (this.httpRequ
aff0: 65 73 74 2e 72 65 61 64 79 53 74 61 74 65 20 21 est.readyState !
b000: 3d 20 34 29 20 7b 20 0d 0a 20 20 20 20 20 20 20 = 4) { ..
b010: 20 20 20 20 20 6c 6f 67 34 6a 73 4c 6f 67 67 65 log4jsLogge
b020: 72 2e 74 72 61 63 65 28 22 3c 20 41 6a 61 78 41 r.trace("< AjaxA
b030: 70 70 65 6e 64 65 72 2e 6f 6e 52 65 61 64 79 53 ppender.onReadyS
b040: 74 61 74 65 43 68 61 6e 67 65 64 3a 20 72 65 61 tateChanged: rea
b050: 64 79 53 74 61 74 65 20 22 20 2b 20 72 65 71 2e dyState " + req.
b060: 72 65 61 64 79 53 74 61 74 65 20 2b 20 22 20 21 readyState + " !
b070: 3d 20 34 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 = 4");..
b080: 20 20 20 20 72 65 74 75 72 6e 3b 20 0d 0a 20 20 return; ..
b090: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
b0a0: 20 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 73 .. var s
b0b0: 75 63 63 65 73 73 20 3d 20 28 28 74 79 70 65 6f uccess = ((typeo
b0c0: 66 20 72 65 71 2e 73 74 61 74 75 73 20 3d 3d 3d f req.status ===
b0d0: 20 22 75 6e 64 65 66 69 6e 65 64 22 29 20 7c 7c "undefined") ||
b0e0: 20 72 65 71 2e 73 74 61 74 75 73 20 3d 3d 3d 20 req.status ===
b0f0: 30 20 7c 7c 20 28 72 65 71 2e 73 74 61 74 75 73 0 || (req.status
b100: 20 3e 3d 20 32 30 30 20 26 26 20 72 65 71 2e 73 >= 200 && req.s
b110: 74 61 74 75 73 20 3c 20 33 30 30 29 29 3b 0d 0a tatus < 300));..
b120: 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 ..
b130: 20 20 69 66 20 28 73 75 63 63 65 73 73 29 20 7b if (success) {
b140: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f .. lo
b150: 67 34 6a 73 4c 6f 67 67 65 72 2e 74 72 61 63 65 g4jsLogger.trace
b160: 28 22 20 20 41 6a 61 78 41 70 70 65 6e 64 65 72 (" AjaxAppender
b170: 2e 6f 6e 52 65 61 64 79 53 74 61 74 65 43 68 61 .onReadyStateCha
b180: 6e 67 65 64 3a 20 73 75 63 63 65 73 73 22 29 3b nged: success");
b190: 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....
b1a0: 2f 2f 72 65 61 64 79 20 73 65 6e 64 69 6e 67 20 //ready sending
b1b0: 64 61 74 61 0d 0a 20 20 20 20 20 20 20 20 20 20 data..
b1c0: 20 20 74 68 69 73 2e 69 73 49 6e 50 72 6f 67 72 this.isInProgr
b1d0: 65 73 73 20 3d 20 66 61 6c 73 65 3b 0d 0a 0d 0a ess = false;....
b1e0: 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b } else {
b1f0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 .. va
b200: 72 20 6d 73 67 20 3d 20 22 20 20 41 6a 61 78 41 r msg = " AjaxA
b210: 70 70 65 6e 64 65 72 2e 6f 6e 52 65 61 64 79 53 ppender.onReadyS
b220: 74 61 74 65 43 68 61 6e 67 65 64 3a 20 58 4d 4c tateChanged: XML
b230: 48 74 74 70 52 65 71 75 65 73 74 20 72 65 71 75 HttpRequest requ
b240: 65 73 74 20 74 6f 20 55 52 4c 20 22 20 2b 20 74 est to URL " + t
b250: 68 69 73 2e 6c 6f 67 67 69 6e 67 55 72 6c 20 2b his.loggingUrl +
b260: 20 22 20 72 65 74 75 72 6e 65 64 20 73 74 61 74 " returned stat
b270: 75 73 20 63 6f 64 65 20 22 20 2b 20 74 68 69 73 us code " + this
b280: 2e 68 74 74 70 52 65 71 75 65 73 74 2e 73 74 61 .httpRequest.sta
b290: 74 75 73 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 tus;..
b2a0: 20 20 6c 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 65 log4jsLogger.e
b2b0: 72 72 6f 72 28 6d 73 67 29 3b 0d 0a 20 20 20 20 rror(msg);..
b2c0: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d }.. .
b2d0: 0a 20 20 20 20 20 20 20 20 6c 6f 67 34 6a 73 4c . log4jsL
b2e0: 6f 67 67 65 72 2e 74 72 61 63 65 28 22 3c 20 41 ogger.trace("< A
b2f0: 6a 61 78 41 70 70 65 6e 64 65 72 2e 6f 6e 52 65 jaxAppender.onRe
b300: 61 64 79 53 74 61 74 65 43 68 61 6e 67 65 64 3a adyStateChanged:
b310: 20 72 65 61 64 79 53 74 61 74 65 20 3d 3d 20 34 readyState == 4
b320: 22 29 3b 09 09 0d 0a 20 20 20 20 7d 2c 0d 0a 20 ");.... },..
b330: 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 47 65 /**.. * Ge
b340: 74 20 74 68 65 20 58 4d 4c 48 74 74 70 52 65 71 t the XMLHttpReq
b350: 75 65 73 74 20 6f 62 6a 65 63 74 20 69 6e 64 65 uest object inde
b360: 70 65 6e 64 65 6e 74 20 6f 66 20 62 72 6f 77 73 pendent of brows
b370: 65 72 2e 0d 0a 20 20 20 20 2a 20 40 70 72 69 76 er... * @priv
b380: 61 74 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 ate.. */..
b390: 20 67 65 74 58 6d 6c 48 74 74 70 52 65 71 75 65 getXmlHttpReque
b3a0: 73 74 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b st: function() {
b3b0: 0d 0a 20 20 20 20 20 20 20 20 6c 6f 67 34 6a 73 .. log4js
b3c0: 4c 6f 67 67 65 72 2e 74 72 61 63 65 28 22 3e 20 Logger.trace(">
b3d0: 41 6a 61 78 41 70 70 65 6e 64 65 72 2e 67 65 74 AjaxAppender.get
b3e0: 58 6d 6c 48 74 74 70 52 65 71 75 65 73 74 22 29 XmlHttpRequest")
b3f0: 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 ;.. ..
b400: 20 20 20 20 20 76 61 72 20 68 74 74 70 52 65 71 var httpReq
b410: 75 65 73 74 20 3d 20 66 61 6c 73 65 3b 0d 0a 0d uest = false;...
b420: 0a 20 20 20 20 20 20 20 20 74 72 79 20 7b 09 09 . try {..
b430: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 .. if
b440: 20 28 77 69 6e 64 6f 77 73 2e 58 4d 4c 48 74 74 (windows.XMLHtt
b450: 70 52 65 71 75 65 73 74 29 20 7b 20 2f 2f 20 4d pRequest) { // M
b460: 6f 7a 69 6c 6c 61 2c 20 53 61 66 61 72 69 2c 20 ozilla, Safari,
b470: 49 45 37 2e 2e 2e 0d 0a 20 20 20 20 20 20 20 20 IE7.....
b480: 20 20 20 20 20 20 20 20 20 20 20 20 68 74 74 70 http
b490: 52 65 71 75 65 73 74 20 3d 20 6e 65 77 20 58 4d Request = new XM
b4a0: 4c 48 74 74 70 52 65 71 75 65 73 74 28 29 3b 0d LHttpRequest();.
b4b0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
b4c0: 20 69 66 20 28 68 74 74 70 52 65 71 75 65 73 74 if (httpRequest
b4d0: 2e 6f 76 65 72 72 69 64 65 4d 69 6d 65 54 79 70 .overrideMimeTyp
b4e0: 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 e) {..
b4f0: 20 20 20 20 20 20 20 20 20 20 68 74 74 70 52 65 httpRe
b500: 71 75 65 73 74 2e 6f 76 65 72 72 69 64 65 4d 69 quest.overrideMi
b510: 6d 65 54 79 70 65 28 74 68 69 73 2e 6c 61 79 6f meType(this.layo
b520: 75 74 2e 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 ut.getContentTyp
b530: 65 28 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 e());..
b540: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 }..
b550: 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 } else if
b560: 28 77 69 6e 64 6f 77 73 2e 63 61 70 74 69 6f 6e (windows.caption
b570: 29 20 7b 20 2f 2f 20 49 45 0d 0a 20 20 20 20 20 ) { // IE..
b580: 20 20 20 20 20 20 20 20 20 20 20 74 72 79 20 7b try {
b590: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
b5a0: 20 20 20 20 20 20 68 74 74 70 52 65 71 75 65 73 httpReques
b5b0: 74 20 3d 20 6e 65 77 20 41 63 74 69 76 65 58 4f t = new ActiveXO
b5c0: 62 6a 65 63 74 28 22 4d 73 78 6d 6c 32 2e 58 4d bject("Msxml2.XM
b5d0: 4c 48 54 54 50 22 29 3b 0d 0a 20 20 20 20 20 20 LHTTP");..
b5e0: 20 20 20 20 20 20 20 20 20 20 7d 20 63 61 74 63 } catc
b5f0: 68 20 28 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 h (e) {..
b600: 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 74 htt
b610: 70 52 65 71 75 65 73 74 20 3d 20 6e 65 77 20 41 pRequest = new A
b620: 63 74 69 76 65 58 4f 62 6a 65 63 74 28 22 4d 69 ctiveXObject("Mi
b630: 63 72 6f 73 6f 66 74 2e 58 4d 4c 48 54 54 50 22 crosoft.XMLHTTP"
b640: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 );..
b650: 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 }..
b660: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 20 }.. }
b670: 63 61 74 63 68 20 28 65 29 20 7b 0d 0a 20 20 20 catch (e) {..
b680: 20 20 20 20 20 20 20 20 20 68 74 74 70 52 65 71 httpReq
b690: 75 65 73 74 20 3d 20 66 61 6c 73 65 3b 0d 0a 20 uest = false;..
b6a0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 }..
b6b0: 20 20 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 .. if (
b6c0: 21 68 74 74 70 52 65 71 75 65 73 74 29 20 7b 0d !httpRequest) {.
b6d0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 . log
b6e0: 34 6a 73 4c 6f 67 67 65 72 2e 66 61 74 61 6c 28 4jsLogger.fatal(
b6f0: 22 55 6e 66 6f 72 74 75 6e 61 74 65 6c 6c 79 20 "Unfortunatelly
b700: 79 6f 75 72 20 62 72 6f 77 73 65 72 20 64 6f 65 your browser doe
b710: 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 41 6a s not support Aj
b720: 61 78 41 70 70 65 6e 64 65 72 20 66 6f 72 20 6c axAppender for l
b730: 6f 67 34 6a 73 21 22 29 3b 0d 0a 20 20 20 20 20 og4js!");..
b740: 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a }.. ..
b750: 20 20 20 20 20 20 20 20 6c 6f 67 34 6a 73 4c 6f log4jsLo
b760: 67 67 65 72 2e 74 72 61 63 65 28 22 3c 20 41 6a gger.trace("< Aj
b770: 61 78 41 70 70 65 6e 64 65 72 2e 67 65 74 58 6d axAppender.getXm
b780: 6c 48 74 74 70 52 65 71 75 65 73 74 22 29 3b 0d lHttpRequest");.
b790: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
b7a0: 68 74 74 70 52 65 71 75 65 73 74 3b 0d 0a 20 20 httpRequest;..
b7b0: 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 20 20 20 },.. ..
b7c0: 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 74 6f 53 74 /** .. * toSt
b7d0: 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 ring.. */..
b7e0: 20 20 74 6f 53 74 72 69 6e 67 3a 20 66 75 6e 63 toString: func
b7f0: 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 tion() {..
b800: 20 20 72 65 74 75 72 6e 20 22 4c 6f 67 34 6a 73 return "Log4js
b810: 2e 41 6a 61 78 41 70 70 65 6e 64 65 72 5b 6c 6f .AjaxAppender[lo
b820: 67 67 69 6e 67 55 72 6c 3d 22 20 2b 20 74 68 69 ggingUrl=" + thi
b830: 73 2e 6c 6f 67 67 69 6e 67 55 72 6c 20 2b 20 22 s.loggingUrl + "
b840: 2c 20 74 68 72 65 73 68 6f 6c 64 3d 22 20 2b 20 , threshold=" +
b850: 74 68 69 73 2e 74 68 72 65 73 68 6f 6c 64 20 2b this.threshold +
b860: 20 22 5d 22 3b 20 0d 0a 20 20 20 20 7d 0d 0a 7d "]"; .. }..}
b870: 29 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a 20 46 69 6c );..../**..* Fil
b880: 65 20 41 70 70 65 6e 64 65 72 20 77 72 69 74 69 e Appender writi
b890: 6e 67 20 74 68 65 20 6c 6f 67 73 20 74 6f 20 61 ng the logs to a
b8a0: 20 74 65 78 74 20 66 69 6c 65 2e 0d 0a 2a 20 50 text file...* P
b8b0: 4c 45 41 53 45 20 4e 4f 54 45 20 2d 20 4f 6e 6c LEASE NOTE - Onl
b8c0: 79 20 77 6f 72 6b 73 20 69 6e 20 49 45 20 61 6e y works in IE an
b8d0: 64 20 4d 6f 7a 69 6c 6c 61 20 0d 0a 2a 20 75 73 d Mozilla ..* us
b8e0: 65 20 41 63 74 69 76 65 58 20 74 6f 20 77 72 69 e ActiveX to wri
b8f0: 74 65 20 66 69 6c 65 20 6f 6e 20 49 45 0d 0a 2a te file on IE..*
b900: 20 75 73 65 20 58 50 43 6f 6d 20 63 6f 6d 70 6f use XPCom compo
b910: 6e 65 6e 74 73 20 20 74 6f 20 77 72 69 74 65 20 nents to write
b920: 66 69 6c 65 20 6f 6e 20 4d 6f 7a 69 6c 6c 61 0d file on Mozilla.
b930: 0a 2a 20 0d 0a 2a 20 40 65 78 74 65 6e 64 73 20 .* ..* @extends
b940: 4c 6f 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 20 Log4js.Appender
b950: 0d 0a 2a 20 40 63 6f 6e 73 74 72 75 63 74 6f 72 ..* @constructor
b960: 0d 0a 2a 20 40 70 61 72 61 6d 20 6c 6f 67 67 65 ..* @param logge
b970: 72 20 6c 6f 67 34 6a 73 20 69 6e 73 74 61 6e 63 r log4js instanc
b980: 65 20 74 68 69 73 20 61 70 70 65 6e 64 65 72 20 e this appender
b990: 69 73 20 61 74 74 61 63 68 65 64 20 74 6f 0d 0a is attached to..
b9a0: 2a 20 40 70 61 72 61 6d 20 66 69 6c 65 20 66 69 * @param file fi
b9b0: 6c 65 20 6c 6f 67 20 6d 65 73 73 61 67 65 73 20 le log messages
b9c0: 77 69 6c 6c 20 62 65 20 77 72 69 74 74 65 6e 20 will be written
b9d0: 74 6f 0d 0a 2a 20 40 61 75 74 68 6f 72 20 53 65 to..* @author Se
b9e0: 74 68 20 43 68 69 73 61 6d 6f 72 65 0d 0a 2a 20 th Chisamore..*
b9f0: 40 61 75 74 68 6f 72 20 4e 69 63 6f 6c 61 73 20 @author Nicolas
ba00: 4a 75 73 74 69 6e 20 6e 6a 75 73 74 69 6e 40 69 Justin njustin@i
ba10: 64 65 61 6c 78 2e 63 6f 6d 0d 0a 2a 20 40 61 75 dealx.com..* @au
ba20: 74 68 6f 72 20 47 72 65 67 6f 72 79 20 4b 6f 6b thor Gregory Kok
ba30: 61 6e 6f 73 6b 79 20 67 6b 6f 6b 61 6e 6f 73 6b anosky gkokanosk
ba40: 79 40 69 64 65 61 6c 78 2e 63 6f 6d 0d 0a 2a 2f y@idealx.com..*/
ba50: 0d 0a 4c 6f 67 34 6a 73 2e 46 69 6c 65 41 70 70 ..Log4js.FileApp
ba60: 65 6e 64 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e ender = function
ba70: 28 66 69 6c 65 29 20 7b 0d 0a 0d 0a 20 20 20 20 (file) {....
ba80: 74 68 69 73 2e 6c 61 79 6f 75 74 20 3d 20 6e 65 this.layout = ne
ba90: 77 20 4c 6f 67 34 6a 73 2e 53 69 6d 70 6c 65 4c w Log4js.SimpleL
baa0: 61 79 6f 75 74 28 29 3b 0d 0a 20 20 20 20 74 68 ayout();.. th
bab0: 69 73 2e 69 73 49 45 20 3d 20 27 75 6e 64 65 66 is.isIE = 'undef
bac0: 69 6e 65 64 27 3b 0d 0a 20 20 20 20 0d 0a 20 20 ined';.. ..
bad0: 20 20 74 68 69 73 2e 66 69 6c 65 20 3d 20 66 69 this.file = fi
bae0: 6c 65 20 7c 7c 20 22 6c 6f 67 34 6a 73 2e 6c 6f le || "log4js.lo
baf0: 67 22 3b 09 0d 0a 20 20 20 20 0d 0a 20 20 20 20 g";... ..
bb00: 74 72 79 7b 0d 0a 20 20 20 20 20 20 20 20 74 68 try{.. th
bb10: 69 73 2e 66 73 6f 20 3d 20 6e 65 77 20 41 63 74 is.fso = new Act
bb20: 69 76 65 58 4f 62 6a 65 63 74 28 22 53 63 72 69 iveXObject("Scri
bb30: 70 74 69 6e 67 2e 46 69 6c 65 53 79 73 74 65 6d pting.FileSystem
bb40: 4f 62 6a 65 63 74 22 29 3b 0d 0a 20 20 20 20 20 Object");..
bb50: 20 20 20 74 68 69 73 2e 69 73 49 45 20 3d 20 74 this.isIE = t
bb60: 72 75 65 3b 0d 0a 20 20 20 20 7d 20 63 61 74 63 rue;.. } catc
bb70: 68 28 65 29 7b 0d 0a 20 20 20 20 20 20 20 20 74 h(e){.. t
bb80: 72 79 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 ry {..
bb90: 20 20 6e 65 74 73 63 61 70 65 2e 73 65 63 75 72 netscape.secur
bba0: 69 74 79 2e 50 72 69 76 69 6c 65 67 65 4d 61 6e ity.PrivilegeMan
bbb0: 61 67 65 72 2e 65 6e 61 62 6c 65 50 72 69 76 69 ager.enablePrivi
bbc0: 6c 65 67 65 28 22 55 6e 69 76 65 72 73 61 6c 58 lege("UniversalX
bbd0: 50 43 6f 6e 6e 65 63 74 22 29 3b 0d 0a 20 20 20 PConnect");..
bbe0: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 66 73 this.fs
bbf0: 6f 20 3d 20 20 43 6f 6d 70 6f 6e 65 6e 74 73 2e o = Components.
bc00: 63 6c 61 73 73 65 73 5b 22 40 6d 6f 7a 69 6c 6c classes["@mozill
bc10: 61 2e 6f 72 67 2f 66 69 6c 65 2f 6c 6f 63 61 6c a.org/file/local
bc20: 3b 31 22 5d 2e 63 72 65 61 74 65 49 6e 73 74 61 ;1"].createInsta
bc30: 6e 63 65 28 43 6f 6d 70 6f 6e 65 6e 74 73 2e 69 nce(Components.i
bc40: 6e 74 65 72 66 61 63 65 73 2e 6e 73 49 4c 6f 63 nterfaces.nsILoc
bc50: 61 6c 46 69 6c 65 29 3b 0d 0a 20 20 20 20 20 20 alFile);..
bc60: 20 20 20 20 20 20 74 68 69 73 2e 69 73 49 45 20 this.isIE
bc70: 3d 20 66 61 6c 73 65 3b 20 2f 2f 6d 6f 7a 69 6c = false; //mozil
bc80: 6c 61 20 26 20 63 6f 0d 0a 20 20 20 20 20 20 20 la & co..
bc90: 20 7d 20 63 61 74 63 68 20 28 65 29 20 7b 0d 0a } catch (e) {..
bca0: 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 34 log4
bcb0: 6a 73 4c 6f 67 67 65 72 2e 65 72 72 6f 72 28 65 jsLogger.error(e
bcc0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 );.. }..
bcd0: 20 20 20 7d 0d 0a 7d 3b 0d 0a 0d 0a 4c 6f 67 34 }..};....Log4
bce0: 6a 73 2e 46 69 6c 65 41 70 70 65 6e 64 65 72 2e js.FileAppender.
bcf0: 70 72 6f 74 6f 74 79 70 65 20 3d 20 4c 6f 67 34 prototype = Log4
bd00: 6a 73 2e 65 78 74 65 6e 64 28 6e 65 77 20 4c 6f js.extend(new Lo
bd10: 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 28 29 2c g4js.Appender(),
bd20: 20 7b 20 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 { .. /**..
bd30: 20 20 20 2a 20 40 70 61 72 61 6d 20 6c 6f 67 67 * @param logg
bd40: 69 6e 67 45 76 65 6e 74 20 65 76 65 6e 74 20 74 ingEvent event t
bd50: 6f 20 62 65 20 6c 6f 67 67 65 64 0d 0a 20 20 20 o be logged..
bd60: 20 2a 20 40 73 65 65 20 4c 6f 67 34 6a 73 2e 41 * @see Log4js.A
bd70: 70 70 65 6e 64 65 72 23 64 6f 41 70 70 65 6e 64 ppender#doAppend
bd80: 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 64 6f .. */.. do
bd90: 41 70 70 65 6e 64 3a 20 66 75 6e 63 74 69 6f 6e Append: function
bda0: 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 29 20 7b (loggingEvent) {
bdb0: 0d 0a 20 20 20 20 20 20 20 20 74 72 79 20 7b 0d .. try {.
bdc0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
bdd0: 20 66 69 6c 65 48 61 6e 64 6c 65 20 3d 20 6e 75 fileHandle = nu
bde0: 6c 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ll;..
bdf0: 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 .. i
be00: 66 28 20 74 68 69 73 2e 69 73 49 45 20 3d 3d 3d f( this.isIE ===
be10: 20 27 75 6e 64 65 66 69 6e 65 64 27 29 20 7b 0d 'undefined') {.
be20: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
be30: 20 6c 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 65 72 log4jsLogger.er
be40: 72 6f 72 28 22 55 6e 73 75 70 70 6f 72 74 65 64 ror("Unsupported
be50: 20 22 29 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ")..
be60: 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 }..
be70: 65 6c 73 65 20 69 66 28 20 74 68 69 73 2e 69 73 else if( this.is
be80: 49 45 20 29 7b 0d 0a 20 20 20 20 20 20 20 20 20 IE ){..
be90: 20 20 20 20 20 20 20 2f 2f 20 74 72 79 20 6f 70 // try op
bea0: 65 6e 69 6e 67 20 65 78 69 73 74 69 6e 67 20 66 ening existing f
beb0: 69 6c 65 2c 20 63 72 65 61 74 65 20 69 66 20 6e ile, create if n
bec0: 65 65 64 65 64 0d 0a 20 20 20 20 20 20 20 20 20 eeded..
bed0: 20 20 20 20 20 20 20 66 69 6c 65 48 61 6e 64 6c fileHandl
bee0: 65 20 3d 20 74 68 69 73 2e 66 73 6f 2e 4f 70 65 e = this.fso.Ope
bef0: 6e 54 65 78 74 46 69 6c 65 28 74 68 69 73 2e 66 nTextFile(this.f
bf00: 69 6c 65 2c 20 38 2c 20 74 72 75 65 29 3b 20 20 ile, 8, true);
bf10: 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
bf20: 20 20 20 20 20 20 20 20 2f 2f 20 77 72 69 74 65 // write
bf30: 20 6f 75 74 20 6f 75 72 20 64 61 74 61 0d 0a 20 out our data..
bf40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 f
bf50: 69 6c 65 48 61 6e 64 6c 65 2e 57 72 69 74 65 4c ileHandle.WriteL
bf60: 69 6e 65 28 74 68 69 73 2e 6c 61 79 6f 75 74 2e ine(this.layout.
bf70: 66 6f 72 6d 61 74 28 6c 6f 67 67 69 6e 67 45 76 format(loggingEv
bf80: 65 6e 74 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 ent));..
bf90: 20 20 20 20 20 20 20 20 66 69 6c 65 48 61 6e 64 fileHand
bfa0: 6c 65 2e 63 6c 6f 73 65 28 29 3b 20 20 20 0d 0a le.close(); ..
bfb0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c } el
bfc0: 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 se {..
bfd0: 20 20 20 20 20 20 6e 65 74 73 63 61 70 65 2e 73 netscape.s
bfe0: 65 63 75 72 69 74 79 2e 50 72 69 76 69 6c 65 67 ecurity.Privileg
bff0: 65 4d 61 6e 61 67 65 72 2e 65 6e 61 62 6c 65 50 eManager.enableP
c000: 72 69 76 69 6c 65 67 65 28 22 55 6e 69 76 65 72 rivilege("Univer
c010: 73 61 6c 58 50 43 6f 6e 6e 65 63 74 22 29 3b 0d salXPConnect");.
c020: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
c030: 20 74 68 69 73 2e 66 73 6f 2e 69 6e 69 74 57 69 this.fso.initWi
c040: 74 68 50 61 74 68 28 74 68 69 73 2e 66 69 6c 65 thPath(this.file
c050: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 );..
c060: 20 20 20 20 69 66 28 21 74 68 69 73 2e 66 73 6f if(!this.fso
c070: 2e 65 78 69 73 74 73 28 29 29 20 7b 0d 0a 20 20 .exists()) {..
c080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
c090: 20 20 2f 2f 63 72 65 61 74 65 20 66 69 6c 65 20 //create file
c0a0: 69 66 20 6e 65 65 64 65 64 0d 0a 20 20 20 20 20 if needed..
c0b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 t
c0c0: 68 69 73 2e 66 73 6f 2e 63 72 65 61 74 65 28 30 his.fso.create(0
c0d0: 78 30 30 2c 20 30 36 30 30 29 3b 0d 0a 20 20 20 x00, 0600);..
c0e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a }..
c0f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
c100: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
c110: 20 20 66 69 6c 65 48 61 6e 64 6c 65 20 3d 20 43 fileHandle = C
c120: 6f 6d 70 6f 6e 65 6e 74 73 2e 63 6c 61 73 73 65 omponents.classe
c130: 73 5b 22 40 6d 6f 7a 69 6c 6c 61 2e 6f 72 67 2f s["@mozilla.org/
c140: 6e 65 74 77 6f 72 6b 2f 66 69 6c 65 2d 6f 75 74 network/file-out
c150: 70 75 74 2d 73 74 72 65 61 6d 3b 31 22 5d 2e 63 put-stream;1"].c
c160: 72 65 61 74 65 49 6e 73 74 61 6e 63 65 28 43 6f reateInstance(Co
c170: 6d 70 6f 6e 65 6e 74 73 2e 69 6e 74 65 72 66 61 mponents.interfa
c180: 63 65 73 2e 6e 73 49 46 69 6c 65 4f 75 74 70 75 ces.nsIFileOutpu
c190: 74 53 74 72 65 61 6d 29 3b 0d 0a 20 20 20 20 20 tStream);..
c1a0: 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 48 fileH
c1b0: 61 6e 64 6c 65 2e 69 6e 69 74 28 20 74 68 69 73 andle.init( this
c1c0: 2e 66 73 6f 2c 20 30 78 30 34 20 7c 20 30 78 30 .fso, 0x04 | 0x0
c1d0: 38 20 7c 20 30 78 31 30 2c 20 30 36 34 2c 20 30 8 | 0x10, 064, 0
c1e0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 );..
c1f0: 20 20 20 20 76 61 72 20 6c 69 6e 65 20 3d 20 74 var line = t
c200: 68 69 73 2e 6c 61 79 6f 75 74 2e 66 6f 72 6d 61 his.layout.forma
c210: 74 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 29 3b t(loggingEvent);
c220: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
c230: 20 20 66 69 6c 65 48 61 6e 64 6c 65 2e 77 72 69 fileHandle.wri
c240: 74 65 28 6c 69 6e 65 2c 20 6c 69 6e 65 2e 6c 65 te(line, line.le
c250: 6e 67 74 68 29 3b 20 2f 2f 77 72 69 74 65 20 64 ngth); //write d
c260: 61 74 61 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ata..
c270: 20 20 20 20 20 66 69 6c 65 48 61 6e 64 6c 65 2e fileHandle.
c280: 63 6c 6f 73 65 28 29 3b 0d 0a 20 20 20 20 20 20 close();..
c290: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
c2a0: 20 7d 20 63 61 74 63 68 20 28 65 29 20 7b 0d 0a } catch (e) {..
c2b0: 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 34 log4
c2c0: 6a 73 4c 6f 67 67 65 72 2e 65 72 72 6f 72 28 65 jsLogger.error(e
c2d0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 );.. }..
c2e0: 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a 0d 0a 20 },.. /*..
c2f0: 20 20 20 2a 20 40 73 65 65 20 4c 6f 67 34 6a 73 * @see Log4js
c300: 2e 41 70 70 65 6e 64 65 72 23 64 6f 43 6c 65 61 .Appender#doClea
c310: 72 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 64 r.. */.. d
c320: 6f 43 6c 65 61 72 3a 20 66 75 6e 63 74 69 6f 6e oClear: function
c330: 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 72 () {.. tr
c340: 79 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 y {..
c350: 20 69 66 28 20 74 68 69 73 2e 69 73 49 45 20 29 if( this.isIE )
c360: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
c370: 20 20 20 76 61 72 20 66 69 6c 65 48 61 6e 64 6c var fileHandl
c380: 65 20 3d 20 74 68 69 73 2e 66 73 6f 2e 47 65 74 e = this.fso.Get
c390: 46 69 6c 65 28 74 68 69 73 2e 66 69 6c 65 29 3b File(this.file);
c3a0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
c3b0: 20 20 66 69 6c 65 48 61 6e 64 6c 65 2e 44 65 6c fileHandle.Del
c3c0: 65 74 65 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 ete();..
c3d0: 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 } else {..
c3e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 ne
c3f0: 74 73 63 61 70 65 2e 73 65 63 75 72 69 74 79 2e tscape.security.
c400: 50 72 69 76 69 6c 65 67 65 4d 61 6e 61 67 65 72 PrivilegeManager
c410: 2e 65 6e 61 62 6c 65 50 72 69 76 69 6c 65 67 65 .enablePrivilege
c420: 28 22 55 6e 69 76 65 72 73 61 6c 58 50 43 6f 6e ("UniversalXPCon
c430: 6e 65 63 74 22 29 3b 0d 0a 20 20 20 20 20 20 20 nect");..
c440: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 66 73 this.fs
c450: 6f 2e 69 6e 69 74 57 69 74 68 50 61 74 68 28 74 o.initWithPath(t
c460: 68 69 73 2e 66 69 6c 65 29 3b 0d 0a 20 20 20 20 his.file);..
c470: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 28 74 if(t
c480: 68 69 73 2e 66 73 6f 2e 65 78 69 73 74 73 28 29 his.fso.exists()
c490: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ) {..
c4a0: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 66 73 this.fs
c4b0: 6f 2e 72 65 6d 6f 76 65 28 66 61 6c 73 65 29 3b o.remove(false);
c4c0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
c4d0: 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 }..
c4e0: 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 20 63 61 }.. } ca
c4f0: 74 63 68 20 28 65 29 20 7b 0d 0a 20 20 20 20 20 tch (e) {..
c500: 20 20 20 20 20 20 20 6c 6f 67 34 6a 73 4c 6f 67 log4jsLog
c510: 67 65 72 2e 65 72 72 6f 72 28 65 29 3b 0d 0a 20 ger.error(e);..
c520: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c }.. },
c530: 0d 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a 20 .. .. /**
c540: 0d 0a 20 20 20 20 2a 20 74 6f 53 74 72 69 6e 67 .. * toString
c550: 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 6f .. */.. to
c560: 53 74 72 69 6e 67 3a 20 66 75 6e 63 74 69 6f 6e String: function
c570: 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 () {.. re
c580: 74 75 72 6e 20 22 4c 6f 67 34 6a 73 2e 46 69 6c turn "Log4js.Fil
c590: 65 41 70 70 65 6e 64 65 72 5b 66 69 6c 65 3d 22 eAppender[file="
c5a0: 20 2b 20 74 68 69 73 2e 66 69 6c 65 20 2b 20 22 + this.file + "
c5b0: 5d 22 3b 20 0d 0a 20 20 20 20 7d 0d 0a 7d 29 3b ]"; .. }..});
c5c0: 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a 20 57 69 6e 64 6f ..../**..* Windo
c5d0: 77 73 20 45 76 65 6e 74 20 41 70 70 65 6e 64 65 ws Event Appende
c5e0: 72 20 77 72 69 74 65 73 20 74 68 65 20 6c 6f 67 r writes the log
c5f0: 73 20 74 6f 20 74 68 65 20 57 69 6e 64 6f 77 73 s to the Windows
c600: 20 45 76 65 6e 74 20 6c 6f 67 2e 0d 0a 2a 20 50 Event log...* P
c610: 4c 45 41 53 45 20 4e 4f 54 45 20 2d 20 4f 6e 6c LEASE NOTE - Onl
c620: 79 20 77 6f 72 6b 73 20 69 6e 20 49 45 2e 2e 75 y works in IE..u
c630: 73 65 73 20 41 63 74 69 76 65 58 20 74 6f 20 77 ses ActiveX to w
c640: 72 69 74 65 20 74 6f 20 57 69 6e 64 6f 77 73 20 rite to Windows
c650: 45 76 65 6e 74 20 6c 6f 67 0d 0a 2a 0d 0a 2a 20 Event log..*..*
c660: 40 65 78 74 65 6e 64 73 20 4c 6f 67 34 6a 73 2e @extends Log4js.
c670: 41 70 70 65 6e 64 65 72 20 0d 0a 2a 20 40 63 6f Appender ..* @co
c680: 6e 73 74 72 75 63 74 6f 72 0d 0a 2a 20 40 70 61 nstructor..* @pa
c690: 72 61 6d 20 6c 6f 67 67 65 72 20 6c 6f 67 34 6a ram logger log4j
c6a0: 73 20 69 6e 73 74 61 6e 63 65 20 74 68 69 73 20 s instance this
c6b0: 61 70 70 65 6e 64 65 72 20 69 73 20 61 74 74 61 appender is atta
c6c0: 63 68 65 64 20 74 6f 0d 0a 2a 20 40 61 75 74 68 ched to..* @auth
c6d0: 6f 72 20 53 65 74 68 20 43 68 69 73 61 6d 6f 72 or Seth Chisamor
c6e0: 65 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e 57 69 e..*/..Log4js.Wi
c6f0: 6e 64 6f 77 73 45 76 65 6e 74 41 70 70 65 6e 64 ndowsEventAppend
c700: 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 er = function()
c710: 7b 0d 0a 20 20 20 20 0d 0a 20 20 20 20 74 68 69 {.. .. thi
c720: 73 2e 6c 61 79 6f 75 74 20 3d 20 6e 65 77 20 4c s.layout = new L
c730: 6f 67 34 6a 73 2e 53 69 6d 70 6c 65 4c 61 79 6f og4js.SimpleLayo
c740: 75 74 28 29 3b 0d 0a 20 20 20 20 0d 0a 20 20 20 ut();.. ..
c750: 20 74 72 79 20 7b 0d 0a 20 20 20 20 20 20 20 20 try {..
c760: 74 68 69 73 2e 73 68 65 6c 6c 20 3d 20 6e 65 77 this.shell = new
c770: 20 41 63 74 69 76 65 58 4f 62 6a 65 63 74 28 22 ActiveXObject("
c780: 57 53 63 72 69 70 74 2e 53 68 65 6c 6c 22 29 3b WScript.Shell");
c790: 0d 0a 20 20 20 20 7d 20 63 61 74 63 68 28 65 29 .. } catch(e)
c7a0: 20 7b 0d 0a 20 20 20 20 20 20 20 20 6c 6f 67 34 {.. log4
c7b0: 6a 73 4c 6f 67 67 65 72 2e 65 72 72 6f 72 28 65 jsLogger.error(e
c7c0: 29 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 3b 0d 0a 0d );.. }..};...
c7d0: 0a 4c 6f 67 34 6a 73 2e 57 69 6e 64 6f 77 73 45 .Log4js.WindowsE
c7e0: 76 65 6e 74 41 70 70 65 6e 64 65 72 2e 70 72 6f ventAppender.pro
c7f0: 74 6f 74 79 70 65 20 3d 20 4c 6f 67 34 6a 73 2e totype = Log4js.
c800: 65 78 74 65 6e 64 28 6e 65 77 20 4c 6f 67 34 6a extend(new Log4j
c810: 73 2e 41 70 70 65 6e 64 65 72 28 29 2c 20 7b 20 s.Appender(), {
c820: 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 .. /**..
c830: 2a 20 40 70 61 72 61 6d 20 6c 6f 67 67 69 6e 67 * @param logging
c840: 45 76 65 6e 74 20 65 76 65 6e 74 20 74 6f 20 62 Event event to b
c850: 65 20 6c 6f 67 67 65 64 0d 0a 20 20 20 20 2a 20 e logged.. *
c860: 40 73 65 65 20 4c 6f 67 34 6a 73 2e 41 70 70 65 @see Log4js.Appe
c870: 6e 64 65 72 23 64 6f 41 70 70 65 6e 64 0d 0a 20 nder#doAppend..
c880: 20 20 20 2a 2f 0d 0a 20 20 20 20 64 6f 41 70 70 */.. doApp
c890: 65 6e 64 3a 20 66 75 6e 63 74 69 6f 6e 28 6c 6f end: function(lo
c8a0: 67 67 69 6e 67 45 76 65 6e 74 29 20 7b 0d 0a 20 ggingEvent) {..
c8b0: 20 20 20 20 20 20 20 76 61 72 20 77 69 6e 4c 65 var winLe
c8c0: 76 65 6c 20 3d 20 34 3b 0d 0a 20 20 20 20 20 20 vel = 4;..
c8d0: 20 20 0d 0a 20 20 20 20 20 20 20 20 2f 2f 20 4d .. // M
c8e0: 61 70 20 6c 6f 67 20 6c 65 76 65 6c 20 74 6f 20 ap log level to
c8f0: 77 69 6e 64 6f 77 73 20 65 76 65 6e 74 20 6c 6f windows event lo
c900: 67 20 6c 65 76 65 6c 2e 0d 0a 20 20 20 20 20 20 g level...
c910: 20 20 2f 2f 20 57 69 6e 64 6f 77 73 20 65 76 65 // Windows eve
c920: 6e 74 73 3a 20 2d 20 53 55 43 43 45 53 53 3a 20 nts: - SUCCESS:
c930: 30 2c 20 45 52 52 4f 52 3a 20 31 2c 20 57 41 52 0, ERROR: 1, WAR
c940: 4e 49 4e 47 3a 20 32 2c 20 49 4e 46 4f 52 4d 41 NING: 2, INFORMA
c950: 54 49 4f 4e 3a 20 34 2c 20 41 55 44 49 54 5f 53 TION: 4, AUDIT_S
c960: 55 43 43 45 53 53 3a 20 38 2c 20 41 55 44 49 54 UCCESS: 8, AUDIT
c970: 5f 46 41 49 4c 55 52 45 3a 20 31 36 0d 0a 20 20 _FAILURE: 16..
c980: 20 20 20 20 20 20 73 77 69 74 63 68 20 28 6c 6f switch (lo
c990: 67 67 69 6e 67 45 76 65 6e 74 2e 6c 65 76 65 6c ggingEvent.level
c9a0: 29 20 7b 09 0d 0a 20 20 20 20 20 20 20 20 20 20 ) {...
c9b0: 20 20 63 61 73 65 20 4c 6f 67 34 6a 73 2e 4c 65 case Log4js.Le
c9c0: 76 65 6c 2e 46 41 54 41 4c 3a 0d 0a 20 20 20 20 vel.FATAL:..
c9d0: 20 20 20 20 20 20 20 20 20 20 20 20 77 69 6e 4c winL
c9e0: 65 76 65 6c 20 3d 20 31 3b 0d 0a 20 20 20 20 20 evel = 1;..
c9f0: 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
ca00: 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 ;.. c
ca10: 61 73 65 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c ase Log4js.Level
ca20: 2e 45 52 52 4f 52 3a 0d 0a 20 20 20 20 20 20 20 .ERROR:..
ca30: 20 20 20 20 20 20 20 20 20 77 69 6e 4c 65 76 65 winLeve
ca40: 6c 20 3d 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 l = 1;..
ca50: 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a break;..
ca60: 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
ca70: 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 2e 57 41 Log4js.Level.WA
ca80: 52 4e 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 RN:..
ca90: 20 20 20 20 20 77 69 6e 4c 65 76 65 6c 20 3d 20 winLevel =
caa0: 32 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 2;..
cab0: 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 break;..
cac0: 20 20 20 20 20 20 20 20 64 65 66 61 75 6c 74 3a default:
cad0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
cae0: 20 20 77 69 6e 4c 65 76 65 6c 20 3d 20 34 3b 0d winLevel = 4;.
caf0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
cb00: 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 break;..
cb10: 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 }.. ..
cb20: 20 20 20 20 20 20 74 72 79 20 7b 0d 0a 20 20 20 try {..
cb30: 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 68 this.sh
cb40: 65 6c 6c 2e 4c 6f 67 45 76 65 6e 74 28 77 69 6e ell.LogEvent(win
cb50: 4c 65 76 65 6c 2c 20 74 68 69 73 2e 6c 65 76 65 Level, this.leve
cb60: 6c 2e 66 6f 72 6d 61 74 28 6c 6f 67 67 69 6e 67 l.format(logging
cb70: 45 76 65 6e 74 29 29 3b 0d 0a 20 20 20 20 20 20 Event));..
cb80: 20 20 7d 20 63 61 74 63 68 28 65 29 20 7b 0d 0a } catch(e) {..
cb90: 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 34 log4
cba0: 6a 73 4c 6f 67 67 65 72 2e 65 72 72 6f 72 28 65 jsLogger.error(e
cbb0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 );.. }..
cbc0: 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 20 20 },.. ..
cbd0: 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 74 6f 53 /** .. * toS
cbe0: 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 tring.. */..
cbf0: 20 20 20 74 6f 53 74 72 69 6e 67 3a 20 66 75 6e toString: fun
cc00: 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 ction() {..
cc10: 20 20 20 72 65 74 75 72 6e 20 22 4c 6f 67 34 6a return "Log4j
cc20: 73 2e 57 69 6e 64 6f 77 73 45 76 65 6e 74 41 70 s.WindowsEventAp
cc30: 70 65 6e 64 65 72 22 3b 20 0d 0a 20 20 20 20 7d pender"; .. }
cc40: 20 0d 0a 7d 29 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a ..});..../**..*
cc50: 20 4a 53 20 41 6c 65 72 74 20 41 70 70 65 6e 64 JS Alert Append
cc60: 65 72 20 77 72 69 74 65 73 20 74 68 65 20 6c 6f er writes the lo
cc70: 67 73 20 74 6f 20 74 68 65 20 4a 61 76 61 53 63 gs to the JavaSc
cc80: 72 69 70 74 20 61 6c 65 72 74 20 64 69 61 6c 6f ript alert dialo
cc90: 67 20 62 6f 78 0d 0a 2a 20 40 63 6f 6e 73 74 72 g box..* @constr
cca0: 75 63 74 6f 72 0d 0a 2a 20 40 65 78 74 65 6e 64 uctor..* @extend
ccb0: 73 20 4c 6f 67 34 6a 73 2e 41 70 70 65 6e 64 65 s Log4js.Appende
ccc0: 72 20 20 0d 0a 2a 20 40 70 61 72 61 6d 20 6c 6f r ..* @param lo
ccd0: 67 67 65 72 20 6c 6f 67 34 6a 73 20 69 6e 73 74 gger log4js inst
cce0: 61 6e 63 65 20 74 68 69 73 20 61 70 70 65 6e 64 ance this append
ccf0: 65 72 20 69 73 20 61 74 74 61 63 68 65 64 20 74 er is attached t
cd00: 6f 0d 0a 2a 20 40 61 75 74 68 6f 72 20 53 26 65 o..* @author S&e
cd10: 61 63 75 74 65 3b 62 61 73 74 69 65 6e 20 4c 45 acute;bastien LE
cd20: 43 41 43 48 45 55 52 0d 0a 2a 2f 0d 0a 4c 6f 67 CACHEUR..*/..Log
cd30: 34 6a 73 2e 4a 53 41 6c 65 72 74 41 70 70 65 6e 4js.JSAlertAppen
cd40: 64 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 der = function()
cd50: 20 7b 0d 0a 0d 0a 20 20 20 20 74 68 69 73 2e 6c {.... this.l
cd60: 61 79 6f 75 74 20 3d 20 6e 65 77 20 4c 6f 67 34 ayout = new Log4
cd70: 6a 73 2e 53 69 6d 70 6c 65 4c 61 79 6f 75 74 28 js.SimpleLayout(
cd80: 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 4c 6f 67 34 6a 73 );..};....Log4js
cd90: 2e 4a 53 41 6c 65 72 74 41 70 70 65 6e 64 65 72 .JSAlertAppender
cda0: 2e 70 72 6f 74 6f 74 79 70 65 20 3d 20 4c 6f 67 .prototype = Log
cdb0: 34 6a 73 2e 65 78 74 65 6e 64 28 6e 65 77 20 4c 4js.extend(new L
cdc0: 6f 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 28 29 og4js.Appender()
cdd0: 2c 20 7b 20 20 0d 0a 20 20 20 20 2f 2a 2a 20 0d , { .. /** .
cde0: 0a 20 20 20 20 2a 20 40 73 65 65 20 4c 6f 67 34 . * @see Log4
cdf0: 6a 73 2e 41 70 70 65 6e 64 65 72 23 64 6f 41 70 js.Appender#doAp
ce00: 70 65 6e 64 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 pend.. */..
ce10: 20 20 64 6f 41 70 70 65 6e 64 3a 20 66 75 6e 63 doAppend: func
ce20: 74 69 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 65 6e tion(loggingEven
ce30: 74 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 44 6f t) {.. Do
ce40: 4d 65 73 73 61 67 65 42 6f 78 28 74 68 69 73 2e MessageBox(this.
ce50: 6c 61 79 6f 75 74 2e 67 65 74 48 65 61 64 65 72 layout.getHeader
ce60: 28 29 20 2b 20 74 68 69 73 2e 6c 61 79 6f 75 74 () + this.layout
ce70: 2e 66 6f 72 6d 61 74 28 6c 6f 67 67 69 6e 67 45 .format(loggingE
ce80: 76 65 6e 74 29 20 2b 20 74 68 69 73 2e 6c 61 79 vent) + this.lay
ce90: 6f 75 74 2e 67 65 74 46 6f 6f 74 65 72 28 29 29 out.getFooter())
cea0: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d ;.. },.. .
ceb0: 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a . /** .. *
cec0: 20 74 6f 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a toString.. *
ced0: 2f 0d 0a 20 20 20 20 74 6f 53 74 72 69 6e 67 3a /.. toString:
cee0: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 function() {..
cef0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 4c return "L
cf00: 6f 67 34 6a 73 2e 4a 53 41 6c 65 72 74 41 70 70 og4js.JSAlertApp
cf10: 65 6e 64 65 72 22 3b 20 0d 0a 20 20 20 20 7d 09 ender"; .. }.
cf20: 0d 0a 7d 29 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a 20 ..});..../**..*
cf30: 41 70 70 65 6e 64 65 72 20 77 72 69 74 65 73 20 Appender writes
cf40: 74 68 65 20 6c 6f 67 73 20 74 6f 20 74 68 65 20 the logs to the
cf50: 4a 61 76 61 53 63 72 69 70 74 20 63 6f 6e 73 6f JavaScript conso
cf60: 6c 65 20 6f 66 20 4d 6f 7a 69 6c 6c 61 20 62 72 le of Mozilla br
cf70: 6f 77 73 65 72 0d 0a 2a 20 4d 6f 72 65 20 69 6e owser..* More in
cf80: 66 6f 73 3a 20 68 74 74 70 3a 2f 2f 6b 62 2e 6d fos: http://kb.m
cf90: 6f 7a 69 6c 6c 61 7a 69 6e 65 2e 6f 72 67 2f 69 ozillazine.org/i
cfa0: 6e 64 65 78 2e 70 68 70 3f 74 69 74 6c 65 3d 4a ndex.php?title=J
cfb0: 61 76 61 53 63 72 69 70 74 5f 43 6f 6e 73 6f 6c avaScript_Consol
cfc0: 65 26 72 65 64 69 72 65 63 74 3d 6e 6f 0d 0a 2a e&redirect=no..*
cfd0: 20 50 4c 45 41 53 45 20 4e 4f 54 45 20 2d 20 4f PLEASE NOTE - O
cfe0: 6e 6c 79 20 77 6f 72 6b 73 20 69 6e 20 4d 6f 7a nly works in Moz
cff0: 69 6c 6c 61 20 62 72 6f 77 73 65 72 0d 0a 2a 20 illa browser..*
d000: 40 63 6f 6e 73 74 72 75 63 74 6f 72 0d 0a 2a 20 @constructor..*
d010: 40 65 78 74 65 6e 64 73 20 4c 6f 67 34 6a 73 2e @extends Log4js.
d020: 41 70 70 65 6e 64 65 72 20 20 0d 0a 2a 20 40 70 Appender ..* @p
d030: 61 72 61 6d 20 6c 6f 67 67 65 72 20 6c 6f 67 34 aram logger log4
d040: 6a 73 20 69 6e 73 74 61 6e 63 65 20 74 68 69 73 js instance this
d050: 20 61 70 70 65 6e 64 65 72 20 69 73 20 61 74 74 appender is att
d060: 61 63 68 65 64 20 74 6f 0d 0a 2a 20 40 61 75 74 ached to..* @aut
d070: 68 6f 72 20 53 74 65 70 68 61 6e 20 53 74 72 69 hor Stephan Stri
d080: 74 74 6d 61 74 74 65 72 0d 0a 2a 2f 0d 0a 4c 6f ttmatter..*/..Lo
d090: 67 34 6a 73 2e 4d 6f 7a 69 6c 6c 61 4a 53 43 6f g4js.MozillaJSCo
d0a0: 6e 73 6f 6c 65 41 70 70 65 6e 64 65 72 20 3d 20 nsoleAppender =
d0b0: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 function() {..
d0c0: 20 20 74 68 69 73 2e 6c 61 79 6f 75 74 20 3d 20 this.layout =
d0d0: 6e 65 77 20 4c 6f 67 34 6a 73 2e 53 69 6d 70 6c new Log4js.Simpl
d0e0: 65 4c 61 79 6f 75 74 28 29 3b 0d 0a 20 20 20 20 eLayout();..
d0f0: 74 72 79 20 7b 0d 0a 20 20 20 20 20 20 20 20 6e try {.. n
d100: 65 74 73 63 61 70 65 2e 73 65 63 75 72 69 74 79 etscape.security
d110: 2e 50 72 69 76 69 6c 65 67 65 4d 61 6e 61 67 65 .PrivilegeManage
d120: 72 2e 65 6e 61 62 6c 65 50 72 69 76 69 6c 65 67 r.enablePrivileg
d130: 65 28 22 55 6e 69 76 65 72 73 61 6c 58 50 43 6f e("UniversalXPCo
d140: 6e 6e 65 63 74 22 29 3b 0d 0a 20 20 20 20 20 20 nnect");..
d150: 20 20 74 68 69 73 2e 6a 73 43 6f 6e 73 6f 6c 65 this.jsConsole
d160: 20 3d 20 43 6f 6d 70 6f 6e 65 6e 74 73 2e 63 6c = Components.cl
d170: 61 73 73 65 73 5b 22 40 6d 6f 7a 69 6c 6c 61 2e asses["@mozilla.
d180: 6f 72 67 2f 63 6f 6e 73 6f 6c 65 73 65 72 76 69 org/consoleservi
d190: 63 65 3b 31 22 5d 2e 67 65 74 53 65 72 76 69 63 ce;1"].getServic
d1a0: 65 28 43 6f 6d 70 6f 6e 65 6e 74 73 2e 69 6e 74 e(Components.int
d1b0: 65 72 66 61 63 65 73 2e 6e 73 49 43 6f 6e 73 6f erfaces.nsIConso
d1c0: 6c 65 53 65 72 76 69 63 65 29 3b 0d 0a 20 20 20 leService);..
d1d0: 20 20 20 20 20 74 68 69 73 2e 73 63 72 69 70 74 this.script
d1e0: 45 72 72 6f 72 20 3d 20 43 6f 6d 70 6f 6e 65 6e Error = Componen
d1f0: 74 73 2e 63 6c 61 73 73 65 73 5b 22 40 6d 6f 7a ts.classes["@moz
d200: 69 6c 6c 61 2e 6f 72 67 2f 73 63 72 69 70 74 65 illa.org/scripte
d210: 72 72 6f 72 3b 31 22 5d 2e 63 72 65 61 74 65 49 rror;1"].createI
d220: 6e 73 74 61 6e 63 65 28 43 6f 6d 70 6f 6e 65 6e nstance(Componen
d230: 74 73 2e 69 6e 74 65 72 66 61 63 65 73 2e 6e 73 ts.interfaces.ns
d240: 49 53 63 72 69 70 74 45 72 72 6f 72 29 3b 0d 0a IScriptError);..
d250: 20 20 20 20 7d 20 63 61 74 63 68 20 28 65 29 20 } catch (e)
d260: 7b 0d 0a 20 20 20 20 20 20 20 20 6c 6f 67 34 6a {.. log4j
d270: 73 4c 6f 67 67 65 72 2e 65 72 72 6f 72 28 65 29 sLogger.error(e)
d280: 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 3b 0d 0a 0d 0a ;.. }..};....
d290: 4c 6f 67 34 6a 73 2e 4d 6f 7a 69 6c 6c 61 4a 53 Log4js.MozillaJS
d2a0: 43 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 65 72 2e ConsoleAppender.
d2b0: 70 72 6f 74 6f 74 79 70 65 20 3d 20 4c 6f 67 34 prototype = Log4
d2c0: 6a 73 2e 65 78 74 65 6e 64 28 6e 65 77 20 4c 6f js.extend(new Lo
d2d0: 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 28 29 2c g4js.Appender(),
d2e0: 20 7b 20 20 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a { .. /** ..
d2f0: 20 20 20 20 2a 20 40 73 65 65 20 4c 6f 67 34 6a * @see Log4j
d300: 73 2e 41 70 70 65 6e 64 65 72 23 64 6f 41 70 70 s.Appender#doApp
d310: 65 6e 64 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 end.. */..
d320: 20 64 6f 41 70 70 65 6e 64 3a 20 66 75 6e 63 74 doAppend: funct
d330: 69 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 ion(loggingEvent
d340: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 72 79 ) {.. try
d350: 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
d360: 6e 65 74 73 63 61 70 65 2e 73 65 63 75 72 69 74 netscape.securit
d370: 79 2e 50 72 69 76 69 6c 65 67 65 4d 61 6e 61 67 y.PrivilegeManag
d380: 65 72 2e 65 6e 61 62 6c 65 50 72 69 76 69 6c 65 er.enablePrivile
d390: 67 65 28 22 55 6e 69 76 65 72 73 61 6c 58 50 43 ge("UniversalXPC
d3a0: 6f 6e 6e 65 63 74 22 29 3b 0d 0a 20 20 20 20 20 onnect");..
d3b0: 20 20 20 20 20 20 20 74 68 69 73 2e 73 63 72 69 this.scri
d3c0: 70 74 45 72 72 6f 72 2e 69 6e 69 74 28 74 68 69 ptError.init(thi
d3d0: 73 2e 6c 61 79 6f 75 74 2e 66 6f 72 6d 61 74 28 s.layout.format(
d3e0: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 29 2c 20 6e loggingEvent), n
d3f0: 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c ull, null, null,
d400: 20 6e 75 6c 6c 2c 20 74 68 69 73 2e 67 65 74 46 null, this.getF
d410: 6c 61 67 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 lag(loggingEvent
d420: 29 2c 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e ), loggingEvent.
d430: 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 3b 0d 0a categoryName);..
d440: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 this
d450: 2e 6a 73 43 6f 6e 73 6f 6c 65 2e 6c 6f 67 4d 65 .jsConsole.logMe
d460: 73 73 61 67 65 28 74 68 69 73 2e 73 63 72 69 70 ssage(this.scrip
d470: 74 45 72 72 6f 72 29 3b 0d 0a 20 20 20 20 20 20 tError);..
d480: 20 20 7d 20 63 61 74 63 68 20 28 65 29 20 7b 0d } catch (e) {.
d490: 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 . log
d4a0: 34 6a 73 4c 6f 67 67 65 72 2e 65 72 72 6f 72 28 4jsLogger.error(
d4b0: 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a e);.. }..
d4c0: 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 20 },.. ..
d4d0: 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 74 6f /** .. * to
d4e0: 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a String.. */..
d4f0: 20 20 20 20 74 6f 53 74 72 69 6e 67 3a 20 66 75 toString: fu
d500: 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 nction() {..
d510: 20 20 20 20 72 65 74 75 72 6e 20 22 4c 6f 67 34 return "Log4
d520: 6a 73 2e 4d 6f 7a 69 6c 6c 61 4a 53 43 6f 6e 73 js.MozillaJSCons
d530: 6f 6c 65 41 70 70 65 6e 64 65 72 22 3b 20 0d 0a oleAppender"; ..
d540: 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 20 },.. ..
d550: 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 4d 61 70 /**.. * Map
d560: 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 20 74 6f Log4js.Level to
d570: 20 6a 73 43 6f 6e 73 6f 6c 65 20 46 6c 61 67 73 jsConsole Flags
d580: 3a 0d 0a 20 20 20 20 2a 20 3c 75 6c 3e 0d 0a 20 :.. * <ul>..
d590: 20 20 20 2a 20 3c 6c 69 3e 6e 73 49 53 63 72 69 * <li>nsIScri
d5a0: 70 74 45 72 72 6f 72 2e 65 72 72 6f 72 46 6c 61 ptError.errorFla
d5b0: 67 20 28 30 29 20 3d 20 4c 65 76 65 6c 2e 45 72 g (0) = Level.Er
d5c0: 72 6f 72 3c 2f 6c 69 3e 0d 0a 20 20 20 20 2a 20 ror</li>.. *
d5d0: 3c 6c 69 3e 6e 73 49 53 63 72 69 70 74 45 72 72 <li>nsIScriptErr
d5e0: 6f 72 2e 77 61 72 6e 69 6e 67 46 6c 61 67 20 28 or.warningFlag (
d5f0: 31 29 3d 20 4c 6f 67 34 6a 73 2e 4c 65 76 65 6c 1)= Log4js.Level
d600: 2e 57 41 52 4e 3c 2f 6c 69 3e 0d 0a 20 20 20 20 .WARN</li>..
d610: 2a 20 3c 6c 69 3e 6e 73 49 53 63 72 69 70 74 45 * <li>nsIScriptE
d620: 72 72 6f 72 2e 65 78 63 65 70 74 69 6f 6e 46 6c rror.exceptionFl
d630: 61 67 20 28 32 29 20 3d 20 4c 6f 67 34 6a 73 2e ag (2) = Log4js.
d640: 4c 65 76 65 6c 2e 46 41 54 41 4c 3c 2f 6c 69 3e Level.FATAL</li>
d650: 0d 0a 20 20 20 20 2a 20 3c 6c 69 3e 6e 73 49 53 .. * <li>nsIS
d660: 63 72 69 70 74 45 72 72 6f 72 2e 73 74 72 69 63 criptError.stric
d670: 74 46 6c 61 67 20 28 34 29 20 3d 20 75 6e 75 73 tFlag (4) = unus
d680: 65 64 3c 2f 6c 69 3e 0d 0a 20 20 20 20 2a 20 3c ed</li>.. * <
d690: 2f 75 6c 3e 0d 0a 20 20 20 20 2a 20 40 70 72 69 /ul>.. * @pri
d6a0: 76 61 74 65 0d 0a 20 20 20 20 2a 2f 09 0d 0a 20 vate.. */...
d6b0: 20 20 20 67 65 74 46 6c 61 67 3a 20 66 75 6e 63 getFlag: func
d6c0: 74 69 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 65 6e tion(loggingEven
d6d0: 74 29 0d 0a 20 20 20 20 7b 0d 0a 20 20 20 20 20 t).. {..
d6e0: 20 20 20 76 61 72 20 72 65 74 76 61 6c 3b 0d 0a var retval;..
d6f0: 20 20 20 20 20 20 20 20 73 77 69 74 63 68 20 28 switch (
d700: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e 6c 65 76 loggingEvent.lev
d710: 65 6c 29 20 7b 09 0d 0a 20 20 20 20 20 20 20 20 el) {...
d720: 20 20 20 20 63 61 73 65 20 4c 6f 67 34 6a 73 2e case Log4js.
d730: 4c 65 76 65 6c 2e 46 41 54 41 4c 3a 0d 0a 20 20 Level.FATAL:..
d740: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 re
d750: 74 76 61 6c 20 3d 20 32 3b 2f 2f 6e 73 49 53 63 tval = 2;//nsISc
d760: 72 69 70 74 45 72 72 6f 72 2e 65 78 63 65 70 74 riptError.except
d770: 69 6f 6e 46 6c 61 67 20 3d 20 32 0d 0a 20 20 20 ionFlag = 2..
d780: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 bre
d790: 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ak;..
d7a0: 20 63 61 73 65 20 4c 6f 67 34 6a 73 2e 4c 65 76 case Log4js.Lev
d7b0: 65 6c 2e 45 52 52 4f 52 3a 0d 0a 20 20 20 20 20 el.ERROR:..
d7c0: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 76 61 retva
d7d0: 6c 20 3d 20 30 3b 2f 2f 6e 73 49 53 63 72 69 70 l = 0;//nsIScrip
d7e0: 74 45 72 72 6f 72 2e 65 72 72 6f 72 46 6c 61 67 tError.errorFlag
d7f0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
d800: 20 20 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 break;..
d810: 20 20 20 20 20 20 63 61 73 65 20 4c 6f 67 34 6a case Log4j
d820: 73 2e 4c 65 76 65 6c 2e 57 41 52 4e 3a 0d 0a 20 s.Level.WARN:..
d830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 r
d840: 65 74 76 61 6c 20 3d 20 31 3b 2f 2f 6e 73 49 53 etval = 1;//nsIS
d850: 63 72 69 70 74 45 72 72 6f 72 2e 77 61 72 6e 69 criptError.warni
d860: 6e 67 46 6c 61 67 20 3d 20 31 0d 0a 20 20 20 20 ngFlag = 1..
d870: 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 brea
d880: 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 k;..
d890: 64 65 66 61 75 6c 74 3a 0d 0a 20 20 20 20 20 20 default:..
d8a0: 20 20 20 20 20 20 20 20 20 20 72 65 74 76 61 6c retval
d8b0: 20 3d 20 31 3b 2f 2f 6e 73 49 53 63 72 69 70 74 = 1;//nsIScript
d8c0: 45 72 72 6f 72 2e 77 61 72 6e 69 6e 67 46 6c 61 Error.warningFla
d8d0: 67 20 3d 20 31 0d 0a 20 20 20 20 20 20 20 20 20 g = 1..
d8e0: 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 break;..
d8f0: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 }..
d900: 20 20 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 .. retu
d910: 72 6e 20 72 65 74 76 61 6c 3b 09 09 0d 0a 20 20 rn retval;....
d920: 20 20 7d 0d 0a 7d 29 3b 0d 0a 0d 0a 2f 2a 2a 0d }..});..../**.
d930: 0a 2a 20 41 70 70 65 6e 64 65 72 20 77 72 69 74 .* Appender writ
d940: 65 73 20 74 68 65 20 6c 6f 67 73 20 74 6f 20 74 es the logs to t
d950: 68 65 20 4a 61 76 61 53 63 72 69 70 74 20 63 6f he JavaScript co
d960: 6e 73 6f 6c 65 20 6f 66 20 4f 70 65 72 61 20 62 nsole of Opera b
d970: 72 6f 77 73 65 72 0d 0a 2a 20 50 4c 45 41 53 45 rowser..* PLEASE
d980: 20 4e 4f 54 45 20 2d 20 4f 6e 6c 79 20 77 6f 72 NOTE - Only wor
d990: 6b 73 20 69 6e 20 4f 70 65 72 61 20 62 72 6f 77 ks in Opera brow
d9a0: 73 65 72 0d 0a 2a 20 40 63 6f 6e 73 74 72 75 63 ser..* @construc
d9b0: 74 6f 72 0d 0a 2a 20 40 65 78 74 65 6e 64 73 20 tor..* @extends
d9c0: 4c 6f 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 20 Log4js.Appender
d9d0: 20 0d 0a 2a 20 40 70 61 72 61 6d 20 6c 6f 67 67 ..* @param logg
d9e0: 65 72 20 6c 6f 67 34 6a 73 20 69 6e 73 74 61 6e er log4js instan
d9f0: 63 65 20 74 68 69 73 20 61 70 70 65 6e 64 65 72 ce this appender
da00: 20 69 73 20 61 74 74 61 63 68 65 64 20 74 6f 0d is attached to.
da10: 0a 2a 20 40 61 75 74 68 6f 72 20 53 74 65 70 68 .* @author Steph
da20: 61 6e 20 53 74 72 69 74 74 6d 61 74 74 65 72 0d an Strittmatter.
da30: 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e 4f 70 65 72 .*/..Log4js.Oper
da40: 61 4a 53 43 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 aJSConsoleAppend
da50: 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 er = function()
da60: 7b 0d 0a 20 20 20 20 74 68 69 73 2e 6c 61 79 6f {.. this.layo
da70: 75 74 20 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 2e ut = new Log4js.
da80: 53 69 6d 70 6c 65 4c 61 79 6f 75 74 28 29 3b 0d SimpleLayout();.
da90: 0a 7d 3b 0d 0a 0d 0a 4c 6f 67 34 6a 73 2e 4f 70 .};....Log4js.Op
daa0: 65 72 61 4a 53 43 6f 6e 73 6f 6c 65 41 70 70 65 eraJSConsoleAppe
dab0: 6e 64 65 72 2e 70 72 6f 74 6f 74 79 70 65 20 3d nder.prototype =
dac0: 20 4c 6f 67 34 6a 73 2e 65 78 74 65 6e 64 28 6e Log4js.extend(n
dad0: 65 77 20 4c 6f 67 34 6a 73 2e 41 70 70 65 6e 64 ew Log4js.Append
dae0: 65 72 28 29 2c 20 7b 20 20 0d 0a 20 20 20 20 2f er(), { .. /
daf0: 2a 2a 20 0d 0a 20 20 20 20 2a 20 40 73 65 65 20 ** .. * @see
db00: 4c 6f 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 23 Log4js.Appender#
db10: 64 6f 41 70 70 65 6e 64 0d 0a 20 20 20 20 2a 2f doAppend.. */
db20: 0d 0a 20 20 20 20 64 6f 41 70 70 65 6e 64 3a 20 .. doAppend:
db30: 66 75 6e 63 74 69 6f 6e 28 6c 6f 67 67 69 6e 67 function(logging
db40: 45 76 65 6e 74 29 20 7b 0d 0a 20 20 20 20 20 20 Event) {..
db50: 20 20 6f 70 65 72 61 2e 70 6f 73 74 45 72 72 6f opera.postErro
db60: 72 28 74 68 69 73 2e 6c 61 79 6f 75 74 2e 66 6f r(this.layout.fo
db70: 72 6d 61 74 28 6c 6f 67 67 69 6e 67 45 76 65 6e rmat(loggingEven
db80: 74 29 29 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 t));.. },..
db90: 20 20 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 .. /** ..
dba0: 20 20 2a 20 74 6f 53 74 72 69 6e 67 0d 0a 20 20 * toString..
dbb0: 20 20 2a 2f 0d 0a 20 20 20 20 74 6f 53 74 72 69 */.. toStri
dbc0: 6e 67 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b ng: function() {
dbd0: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
dbe0: 20 22 4c 6f 67 34 6a 73 2e 4f 70 65 72 61 4a 53 "Log4js.OperaJS
dbf0: 43 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 65 72 22 ConsoleAppender"
dc00: 3b 20 0d 0a 20 20 20 20 7d 0d 0a 7d 29 3b 0d 0a ; .. }..});..
dc10: 0d 0a 2f 2a 2a 0d 0a 2a 20 41 70 70 65 6e 64 65 ../**..* Appende
dc20: 72 20 77 72 69 74 65 73 20 74 68 65 20 6c 6f 67 r writes the log
dc30: 73 20 74 6f 20 74 68 65 20 4a 61 76 61 53 63 72 s to the JavaScr
dc40: 69 70 74 20 63 6f 6e 73 6f 6c 65 20 6f 66 20 53 ipt console of S
dc50: 61 66 61 72 69 20 62 72 6f 77 73 65 72 0d 0a 2a afari browser..*
dc60: 20 50 4c 45 41 53 45 20 4e 4f 54 45 20 2d 20 4f PLEASE NOTE - O
dc70: 6e 6c 79 20 77 6f 72 6b 73 20 69 6e 20 53 61 66 nly works in Saf
dc80: 61 72 69 20 62 72 6f 77 73 65 72 0d 0a 2a 20 40 ari browser..* @
dc90: 63 6f 6e 73 74 72 75 63 74 6f 72 0d 0a 2a 20 40 constructor..* @
dca0: 65 78 74 65 6e 64 73 20 4c 6f 67 34 6a 73 2e 41 extends Log4js.A
dcb0: 70 70 65 6e 64 65 72 20 20 0d 0a 2a 20 40 70 61 ppender ..* @pa
dcc0: 72 61 6d 20 6c 6f 67 67 65 72 20 6c 6f 67 34 6a ram logger log4j
dcd0: 73 20 69 6e 73 74 61 6e 63 65 20 74 68 69 73 20 s instance this
dce0: 61 70 70 65 6e 64 65 72 20 69 73 20 61 74 74 61 appender is atta
dcf0: 63 68 65 64 20 74 6f 0d 0a 2a 20 40 61 75 74 68 ched to..* @auth
dd00: 6f 72 20 53 74 65 70 68 61 6e 20 53 74 72 69 74 or Stephan Strit
dd10: 74 6d 61 74 74 65 72 0d 0a 2a 2f 0d 0a 4c 6f 67 tmatter..*/..Log
dd20: 34 6a 73 2e 53 61 66 61 72 69 4a 53 43 6f 6e 73 4js.SafariJSCons
dd30: 6f 6c 65 41 70 70 65 6e 64 65 72 20 3d 20 66 75 oleAppender = fu
dd40: 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 nction() {..
dd50: 74 68 69 73 2e 6c 61 79 6f 75 74 20 3d 20 6e 65 this.layout = ne
dd60: 77 20 4c 6f 67 34 6a 73 2e 53 69 6d 70 6c 65 4c w Log4js.SimpleL
dd70: 61 79 6f 75 74 28 29 3b 0d 0a 7d 3b 0d 0a 0d 0a ayout();..};....
dd80: 4c 6f 67 34 6a 73 2e 53 61 66 61 72 69 4a 53 43 Log4js.SafariJSC
dd90: 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 65 72 2e 70 onsoleAppender.p
dda0: 72 6f 74 6f 74 79 70 65 20 3d 20 4c 6f 67 34 6a rototype = Log4j
ddb0: 73 2e 65 78 74 65 6e 64 28 6e 65 77 20 4c 6f 67 s.extend(new Log
ddc0: 34 6a 73 2e 41 70 70 65 6e 64 65 72 28 29 2c 20 4js.Appender(),
ddd0: 7b 20 20 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 { .. /** ..
dde0: 20 20 20 2a 20 40 73 65 65 20 4c 6f 67 34 6a 73 * @see Log4js
ddf0: 2e 41 70 70 65 6e 64 65 72 23 64 6f 41 70 70 65 .Appender#doAppe
de00: 6e 64 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 nd.. */..
de10: 64 6f 41 70 70 65 6e 64 3a 20 66 75 6e 63 74 69 doAppend: functi
de20: 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 29 on(loggingEvent)
de30: 20 7b 0d 0a 20 20 20 20 20 20 20 20 77 69 6e 64 {.. wind
de40: 6f 77 2e 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 74 ow.console.log(t
de50: 68 69 73 2e 6c 61 79 6f 75 74 2e 66 6f 72 6d 61 his.layout.forma
de60: 74 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 29 29 t(loggingEvent))
de70: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d ;.. },.. .
de80: 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a . /** .. *
de90: 20 74 6f 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a toString.. *
dea0: 2f 0d 0a 20 20 20 20 74 6f 53 74 72 69 6e 67 3a /.. toString:
deb0: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 function() {..
dec0: 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 4c return "L
ded0: 6f 67 34 6a 73 2e 53 61 66 61 72 69 4a 53 43 6f og4js.SafariJSCo
dee0: 6e 73 6f 6c 65 41 70 70 65 6e 64 65 72 22 3b 20 nsoleAppender";
def0: 0d 0a 20 20 20 20 7d 0d 0a 7d 29 3b 0d 0a 0d 0a .. }..});....
df00: 2f 2a 2a 0d 0a 2a 20 41 70 70 65 6e 64 65 72 20 /**..* Appender
df10: 77 72 69 74 65 73 20 74 68 65 20 6c 6f 67 73 20 writes the logs
df20: 74 6f 20 74 68 65 20 4a 61 76 61 53 63 72 69 70 to the JavaScrip
df30: 74 20 63 6f 6e 73 6f 6c 65 20 6f 66 20 4f 70 65 t console of Ope
df40: 72 61 20 62 72 6f 77 73 65 72 0d 0a 2a 20 50 4c ra browser..* PL
df50: 45 41 53 45 20 4e 4f 54 45 20 2d 20 4f 6e 6c 79 EASE NOTE - Only
df60: 20 77 6f 72 6b 73 20 69 6e 20 4f 70 65 72 61 20 works in Opera
df70: 62 72 6f 77 73 65 72 0d 0a 2a 20 40 63 6f 6e 73 browser..* @cons
df80: 74 72 75 63 74 6f 72 0d 0a 2a 20 40 65 78 74 65 tructor..* @exte
df90: 6e 64 73 20 4c 6f 67 34 6a 73 2e 41 70 70 65 6e nds Log4js.Appen
dfa0: 64 65 72 20 20 0d 0a 2a 20 40 70 61 72 61 6d 20 der ..* @param
dfb0: 6c 6f 67 67 65 72 20 6c 6f 67 34 6a 73 20 69 6e logger log4js in
dfc0: 73 74 61 6e 63 65 20 74 68 69 73 20 61 70 70 65 stance this appe
dfd0: 6e 64 65 72 20 69 73 20 61 74 74 61 63 68 65 64 nder is attached
dfe0: 20 74 6f 0d 0a 2a 20 40 61 75 74 68 6f 72 20 53 to..* @author S
dff0: 74 65 70 68 61 6e 20 53 74 72 69 74 74 6d 61 74 tephan Strittmat
e000: 74 65 72 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e ter..*/..Log4js.
e010: 53 6e 65 67 6f 70 61 74 4a 53 43 6f 6e 73 6f 6c SnegopatJSConsol
e020: 65 41 70 70 65 6e 64 65 72 20 3d 20 66 75 6e 63 eAppender = func
e030: 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 74 68 tion() {.. th
e040: 69 73 2e 6c 61 79 6f 75 74 20 3d 20 6e 65 77 20 is.layout = new
e050: 4c 6f 67 34 6a 73 2e 53 69 6d 70 6c 65 4c 61 79 Log4js.SimpleLay
e060: 6f 75 74 28 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 4c 6f out();..};....Lo
e070: 67 34 6a 73 2e 53 6e 65 67 6f 70 61 74 4a 53 43 g4js.SnegopatJSC
e080: 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 65 72 2e 70 onsoleAppender.p
e090: 72 6f 74 6f 74 79 70 65 20 3d 20 4c 6f 67 34 6a rototype = Log4j
e0a0: 73 2e 65 78 74 65 6e 64 28 6e 65 77 20 4c 6f 67 s.extend(new Log
e0b0: 34 6a 73 2e 41 70 70 65 6e 64 65 72 28 29 2c 20 4js.Appender(),
e0c0: 7b 20 20 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 { .. /** ..
e0d0: 20 20 20 2a 20 40 73 65 65 20 4c 6f 67 34 6a 73 * @see Log4js
e0e0: 2e 41 70 70 65 6e 64 65 72 23 64 6f 41 70 70 65 .Appender#doAppe
e0f0: 6e 64 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 nd.. */..
e100: 64 6f 41 70 70 65 6e 64 3a 20 66 75 6e 63 74 69 doAppend: functi
e110: 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 29 on(loggingEvent)
e120: 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 {.. var
e130: 6d 65 73 73 61 67 65 20 3d 20 74 68 69 73 2e 6c message = this.l
e140: 61 79 6f 75 74 2e 66 6f 72 6d 61 74 28 6c 6f 67 ayout.format(log
e150: 67 69 6e 67 45 76 65 6e 74 29 3b 0d 0a 20 20 20 gingEvent);..
e160: 20 20 20 20 20 69 66 20 28 6d 65 73 73 61 67 65 if (message
e170: 29 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ){..
e180: 4d 65 73 73 61 67 65 28 27 27 2b 6d 65 73 73 61 Message(''+messa
e190: 67 65 2e 72 65 70 6c 61 63 65 28 2f 5c 6e 7b 31 ge.replace(/\n{1
e1a0: 2c 7d 24 2f 67 2c 20 27 27 29 29 3b 0d 0a 20 20 ,}$/g, ''));..
e1b0: 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 7d 2c 0d }.. },.
e1c0: 0a 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a 20 0d . .. /** .
e1d0: 0a 20 20 20 20 2a 20 74 6f 53 74 72 69 6e 67 0d . * toString.
e1e0: 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 74 6f 53 . */.. toS
e1f0: 74 72 69 6e 67 3a 20 66 75 6e 63 74 69 6f 6e 28 tring: function(
e200: 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 ) {.. ret
e210: 75 72 6e 20 22 4c 6f 67 34 6a 73 2e 53 6e 65 67 urn "Log4js.Sneg
e220: 6f 70 61 74 4a 53 43 6f 6e 73 6f 6c 65 41 70 70 opatJSConsoleApp
e230: 65 6e 64 65 72 22 3b 20 0d 0a 20 20 20 20 7d 0d ender"; .. }.
e240: 0a 7d 29 3b 0d 0a 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a .});....../**..*
e250: 20 4a 61 76 61 53 63 72 69 70 74 20 43 6f 6e 73 JavaScript Cons
e260: 6f 6c 65 20 41 70 70 65 6e 64 65 72 20 77 68 69 ole Appender whi
e270: 63 68 20 69 73 20 62 72 6f 77 73 65 72 20 69 6e ch is browser in
e280: 64 65 70 65 6e 64 65 6e 74 2e 0d 0a 2a 20 49 74 dependent...* It
e290: 20 63 68 65 63 6b 73 20 69 6e 74 65 72 6e 61 6c checks internal
e2a0: 6c 79 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 ly for the curre
e2b0: 6e 74 20 62 72 6f 77 73 65 72 20 61 6e 64 20 61 nt browser and a
e2c0: 64 64 73 20 64 65 6c 65 67 61 74 65 20 74 6f 0d dds delegate to.
e2d0: 0a 2a 20 73 70 65 63 69 66 69 63 20 4a 61 76 61 .* specific Java
e2e0: 53 63 72 69 70 74 20 43 6f 6e 73 6f 6c 65 20 41 Script Console A
e2f0: 70 70 65 6e 64 65 72 20 6f 66 20 74 68 65 20 62 ppender of the b
e300: 72 6f 77 73 65 72 2e 0d 0a 2a 20 0d 0a 2a 20 40 rowser...* ..* @
e310: 61 75 74 68 6f 72 20 53 74 65 70 68 61 6e 20 53 author Stephan S
e320: 74 72 69 74 74 6d 61 74 74 65 72 0d 0a 2a 20 40 trittmatter..* @
e330: 73 69 6e 63 65 20 31 2e 30 0d 0a 2a 2f 0d 0a 4c since 1.0..*/..L
e340: 6f 67 34 6a 73 2e 42 72 6f 77 73 65 72 43 6f 6e og4js.BrowserCon
e350: 73 6f 6c 65 41 70 70 65 6e 64 65 72 20 3d 20 66 soleAppender = f
e360: 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 unction() {..
e370: 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 44 65 6c 65 /**.. * Dele
e380: 67 61 74 65 20 66 6f 72 20 62 72 6f 77 73 65 72 gate for browser
e390: 20 73 70 65 63 69 66 69 63 20 69 6d 70 6c 65 6d specific implem
e3a0: 65 6e 74 61 74 69 6f 6e 0d 0a 20 20 20 20 2a 20 entation.. *
e3b0: 40 74 79 70 65 20 4c 6f 67 34 6a 73 2e 41 70 70 @type Log4js.App
e3c0: 65 6e 64 65 72 0d 0a 20 20 20 20 2a 20 40 70 72 ender.. * @pr
e3d0: 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 ivate.. */..
e3e0: 20 20 20 74 68 69 73 2e 63 6f 6e 73 6f 6c 65 44 this.consoleD
e3f0: 65 6c 65 67 61 74 65 20 3d 20 6e 75 6c 6c 3b 0d elegate = null;.
e400: 0a 20 20 20 20 0d 0a 20 20 20 20 69 66 20 28 77 . .. if (w
e410: 69 6e 64 6f 77 73 2e 63 6f 6e 73 6f 6c 65 29 20 indows.console)
e420: 7b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e {.. this.
e430: 63 6f 6e 73 6f 6c 65 44 65 6c 65 67 61 74 65 20 consoleDelegate
e440: 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 2e 53 61 66 = new Log4js.Saf
e450: 61 72 69 4a 53 43 6f 6e 73 6f 6c 65 41 70 70 65 ariJSConsoleAppe
e460: 6e 64 65 72 28 29 3b 20 0d 0a 20 20 20 20 7d 0d nder(); .. }.
e470: 0a 20 20 20 20 65 6c 73 65 20 69 66 20 28 77 69 . else if (wi
e480: 6e 64 6f 77 73 2e 6f 70 65 72 61 29 20 7b 0d 0a ndows.opera) {..
e490: 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e this.con
e4a0: 73 6f 6c 65 44 65 6c 65 67 61 74 65 20 3d 20 6e soleDelegate = n
e4b0: 65 77 20 4c 6f 67 34 6a 73 2e 4f 70 65 72 61 4a ew Log4js.OperaJ
e4c0: 53 43 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 65 72 SConsoleAppender
e4d0: 28 29 3b 20 0d 0a 20 20 20 20 7d 0d 0a 20 20 20 (); .. }..
e4e0: 20 65 6c 73 65 20 69 66 28 77 69 6e 64 6f 77 73 else if(windows
e4f0: 2e 6e 65 74 73 63 61 70 65 29 20 7b 0d 0a 20 20 .netscape) {..
e500: 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 73 6f this.conso
e510: 6c 65 44 65 6c 65 67 61 74 65 20 3d 20 6e 65 77 leDelegate = new
e520: 20 4c 6f 67 34 6a 73 2e 4d 6f 7a 4a 53 43 6f 6e Log4js.MozJSCon
e530: 73 6f 6c 65 41 70 70 65 6e 64 65 72 28 29 3b 20 soleAppender();
e540: 0d 0a 20 20 20 20 7d 20 0d 0a 20 20 20 20 65 6c .. } .. el
e550: 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 72 se {.. tr
e560: 79 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 y {..
e570: 20 76 61 72 20 73 6e 20 3d 20 76 38 56 65 72 73 var sn = v8Vers
e580: 69 6f 6e 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 ion;..
e590: 20 20 2f 2f 64 65 62 75 67 67 65 72 3b 0d 0a 20 //debugger;..
e5a0: 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 if (s
e5b0: 6e 29 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 n){..
e5c0: 20 20 20 20 20 74 68 69 73 2e 63 6f 6e 73 6f 6c this.consol
e5d0: 65 44 65 6c 65 67 61 74 65 20 3d 20 6e 65 77 20 eDelegate = new
e5e0: 4c 6f 67 34 6a 73 2e 53 6e 65 67 6f 70 61 74 4a Log4js.SnegopatJ
e5f0: 53 43 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 65 72 SConsoleAppender
e600: 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ();..
e610: 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 20 } else {..
e620: 20 20 20 20 20 20 20 20 20 20 20 6c 6f 67 34 6a log4j
e630: 73 4c 6f 67 67 65 72 2e 65 72 72 6f 72 28 22 55 sLogger.error("U
e640: 6e 73 75 70 70 6f 72 74 65 64 20 22 29 3b 0d 0a nsupported ");..
e650: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 }..
e660: 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 ..
e670: 20 20 20 20 20 7d 20 63 61 74 63 68 28 65 29 20 } catch(e)
e680: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c {.. l
e690: 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 65 72 72 6f og4jsLogger.erro
e6a0: 72 28 22 55 6e 73 75 70 70 6f 72 74 65 64 20 22 r("Unsupported "
e6b0: 29 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 );.. }..
e6c0: 20 20 20 20 20 20 20 0d 0a 20 20 20 20 7d 0d 0a .. }..
e6d0: 20 20 20 20 2f 2f 65 6c 73 65 20 7b 0d 0a 20 20 //else {..
e6e0: 20 20 2f 2f 20 20 20 2f 2f 40 74 6f 64 6f 0d 0a // //@todo..
e6f0: 20 20 20 20 2f 2f 20 20 20 6c 6f 67 34 6a 73 4c // log4jsL
e700: 6f 67 67 65 72 2e 65 72 72 6f 72 28 22 55 6e 73 ogger.error("Uns
e710: 75 70 70 6f 72 74 65 64 20 42 72 6f 77 73 65 72 upported Browser
e720: 22 29 3b 0d 0a 20 20 20 20 2f 2f 7d 0d 0a 7d 3b ");.. //}..};
e730: 0d 0a 0d 0a 4c 6f 67 34 6a 73 2e 42 72 6f 77 73 ....Log4js.Brows
e740: 65 72 43 6f 6e 73 6f 6c 65 41 70 70 65 6e 64 65 erConsoleAppende
e750: 72 2e 70 72 6f 74 6f 74 79 70 65 20 3d 20 4c 6f r.prototype = Lo
e760: 67 34 6a 73 2e 65 78 74 65 6e 64 28 6e 65 77 20 g4js.extend(new
e770: 4c 6f 67 34 6a 73 2e 41 70 70 65 6e 64 65 72 28 Log4js.Appender(
e780: 29 2c 20 7b 20 20 0d 0a 20 20 20 20 2f 2a 2a 20 ), { .. /**
e790: 0d 0a 20 20 20 20 2a 20 40 73 65 65 20 4c 6f 67 .. * @see Log
e7a0: 34 6a 73 2e 41 70 70 65 6e 64 65 72 23 64 6f 41 4js.Appender#doA
e7b0: 70 70 65 6e 64 0d 0a 20 20 20 20 2a 2f 0d 0a 20 ppend.. */..
e7c0: 20 20 20 64 6f 41 70 70 65 6e 64 3a 20 66 75 6e doAppend: fun
e7d0: 63 74 69 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 65 ction(loggingEve
e7e0: 6e 74 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 nt) {.. t
e7f0: 68 69 73 2e 63 6f 6e 73 6f 6c 65 44 65 6c 65 67 his.consoleDeleg
e800: 61 74 65 2e 64 6f 41 70 70 65 6e 64 28 6c 6f 67 ate.doAppend(log
e810: 67 69 6e 67 45 76 65 6e 74 29 3b 0d 0a 20 20 20 gingEvent);..
e820: 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 },.. /** ..
e830: 20 20 20 2a 20 40 73 65 65 20 4c 6f 67 34 6a 73 * @see Log4js
e840: 2e 41 70 70 65 6e 64 65 72 23 64 6f 43 6c 65 61 .Appender#doClea
e850: 72 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 64 r.. */.. d
e860: 6f 43 6c 65 61 72 3a 20 66 75 6e 63 74 69 6f 6e oClear: function
e870: 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 68 () {.. th
e880: 69 73 2e 63 6f 6e 73 6f 6c 65 44 65 6c 65 67 61 is.consoleDelega
e890: 74 65 2e 64 6f 43 6c 65 61 72 28 29 3b 0d 0a 20 te.doClear();..
e8a0: 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 0d 0a },.. /**..
e8b0: 20 20 20 20 2a 20 40 73 65 65 20 4c 6f 67 34 6a * @see Log4j
e8c0: 73 2e 41 70 70 65 6e 64 65 72 23 73 65 74 4c 61 s.Appender#setLa
e8d0: 79 6f 75 74 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 yout.. */..
e8e0: 20 20 73 65 74 4c 61 79 6f 75 74 3a 20 66 75 6e setLayout: fun
e8f0: 63 74 69 6f 6e 28 6c 61 79 6f 75 74 29 7b 0d 0a ction(layout){..
e900: 20 20 20 20 20 20 20 20 74 68 69 73 2e 63 6f 6e this.con
e910: 73 6f 6c 65 44 65 6c 65 67 61 74 65 2e 73 65 74 soleDelegate.set
e920: 4c 61 79 6f 75 74 28 6c 61 79 6f 75 74 29 3b 0d Layout(layout);.
e930: 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 . },.. ..
e940: 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 74 /** .. * t
e950: 6f 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d oString.. */.
e960: 0a 20 20 20 20 74 6f 53 74 72 69 6e 67 3a 20 66 . toString: f
e970: 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 unction() {..
e980: 20 20 20 20 20 72 65 74 75 72 6e 20 22 4c 6f 67 return "Log
e990: 34 6a 73 2e 42 72 6f 77 73 65 72 43 6f 6e 73 6f 4js.BrowserConso
e9a0: 6c 65 41 70 70 65 6e 64 65 72 3a 20 22 20 2b 20 leAppender: " +
e9b0: 74 68 69 73 2e 63 6f 6e 73 6f 6c 65 44 65 6c 65 this.consoleDele
e9c0: 67 61 74 65 2e 74 6f 53 74 72 69 6e 67 28 29 3b gate.toString();
e9d0: 20 0d 0a 20 20 20 20 7d 0d 0a 7d 29 3b 0d 0a 0d .. }..});...
e9e0: 0a 2f 2a 2a 0d 0a 2a 20 53 69 6d 70 6c 65 4c 61 ./**..* SimpleLa
e9f0: 79 6f 75 74 20 63 6f 6e 73 69 73 74 73 20 6f 66 yout consists of
ea00: 20 74 68 65 20 6c 65 76 65 6c 20 6f 66 20 74 68 the level of th
ea10: 65 20 6c 6f 67 20 73 74 61 74 65 6d 65 6e 74 2c e log statement,
ea20: 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 22 20 2d followed by " -
ea30: 20 22 20 0d 0a 2a 20 61 6e 64 20 74 68 65 6e 20 " ..* and then
ea40: 74 68 65 20 6c 6f 67 20 6d 65 73 73 61 67 65 20 the log message
ea50: 69 74 73 65 6c 66 2e 20 46 6f 72 20 65 78 61 6d itself. For exam
ea60: 70 6c 65 2c 0d 0a 2a 20 3c 63 6f 64 65 3e 44 45 ple,..* <code>DE
ea70: 42 55 47 20 2d 20 48 65 6c 6c 6f 20 77 6f 72 6c BUG - Hello worl
ea80: 64 3c 2f 63 6f 64 65 3e 0d 0a 2a 0d 0a 2a 20 40 d</code>..*..* @
ea90: 63 6f 6e 73 74 72 75 63 74 6f 72 0d 0a 2a 20 40 constructor..* @
eaa0: 65 78 74 65 6e 64 73 20 4c 6f 67 34 6a 73 2e 4c extends Log4js.L
eab0: 61 79 6f 75 74 0d 0a 2a 20 40 65 78 74 65 6e 64 ayout..* @extend
eac0: 73 20 4c 61 79 6f 75 74 0d 0a 2a 20 40 61 75 74 s Layout..* @aut
ead0: 68 6f 72 20 53 74 65 70 68 61 6e 20 53 74 72 69 hor Stephan Stri
eae0: 74 74 6d 61 74 74 65 72 0d 0a 2a 2f 0d 0a 4c 6f ttmatter..*/..Lo
eaf0: 67 34 6a 73 2e 53 69 6d 70 6c 65 4c 61 79 6f 75 g4js.SimpleLayou
eb00: 74 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b t = function() {
eb10: 0d 0a 20 20 20 20 74 68 69 73 2e 4c 49 4e 45 5f .. this.LINE_
eb20: 53 45 50 20 20 3d 20 22 5c 6e 22 3b 0d 0a 20 20 SEP = "\n";..
eb30: 20 20 74 68 69 73 2e 4c 49 4e 45 5f 53 45 50 5f this.LINE_SEP_
eb40: 4c 45 4e 20 3d 20 31 3b 0d 0a 7d 3b 0d 0a 0d 0a LEN = 1;..};....
eb50: 4c 6f 67 34 6a 73 2e 53 69 6d 70 6c 65 4c 61 79 Log4js.SimpleLay
eb60: 6f 75 74 2e 70 72 6f 74 6f 74 79 70 65 20 3d 20 out.prototype =
eb70: 4c 6f 67 34 6a 73 2e 65 78 74 65 6e 64 28 6e 65 Log4js.extend(ne
eb80: 77 20 4c 6f 67 34 6a 73 2e 4c 61 79 6f 75 74 28 w Log4js.Layout(
eb90: 29 2c 20 7b 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a ), {.. /** ..
eba0: 20 20 20 20 2a 20 49 6d 70 6c 65 6d 65 6e 74 20 * Implement
ebb0: 74 68 69 73 20 6d 65 74 68 6f 64 20 74 6f 20 63 this method to c
ebc0: 72 65 61 74 65 20 79 6f 75 72 20 6f 77 6e 20 6c reate your own l
ebd0: 61 79 6f 75 74 20 66 6f 72 6d 61 74 2e 0d 0a 20 ayout format...
ebe0: 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 4c 6f 67 * @param {Log
ebf0: 34 6a 73 2e 4c 6f 67 67 69 6e 67 45 76 65 6e 74 4js.LoggingEvent
ec00: 7d 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 20 6c } loggingEvent l
ec10: 6f 67 67 69 6e 67 45 76 65 6e 74 20 74 6f 20 66 oggingEvent to f
ec20: 6f 72 6d 61 74 0d 0a 20 20 20 20 2a 20 40 72 65 ormat.. * @re
ec30: 74 75 72 6e 20 66 6f 72 6d 61 74 74 65 64 20 53 turn formatted S
ec40: 74 72 69 6e 67 0d 0a 20 20 20 20 2a 20 40 74 79 tring.. * @ty
ec50: 70 65 20 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a pe String.. *
ec60: 2f 0d 0a 20 20 20 20 66 6f 72 6d 61 74 3a 20 66 /.. format: f
ec70: 75 6e 63 74 69 6f 6e 28 6c 6f 67 67 69 6e 67 45 unction(loggingE
ec80: 76 65 6e 74 29 20 7b 0d 0a 20 20 20 20 20 20 20 vent) {..
ec90: 20 72 65 74 75 72 6e 20 6c 6f 67 67 69 6e 67 45 return loggingE
eca0: 76 65 6e 74 2e 6c 65 76 65 6c 2e 74 6f 53 74 72 vent.level.toStr
ecb0: 69 6e 67 28 29 20 2b 20 22 20 2d 20 22 20 2b 20 ing() + " - " +
ecc0: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e 6d 65 73 loggingEvent.mes
ecd0: 73 61 67 65 20 2b 20 74 68 69 73 2e 4c 49 4e 45 sage + this.LINE
ece0: 5f 53 45 50 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 _SEP;.. },..
ecf0: 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 52 /** .. * R
ed00: 65 74 75 72 6e 73 20 74 68 65 20 63 6f 6e 74 65 eturns the conte
ed10: 6e 74 20 74 79 70 65 20 6f 75 74 70 75 74 20 62 nt type output b
ed20: 79 20 74 68 69 73 20 6c 61 79 6f 75 74 2e 20 0d y this layout. .
ed30: 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 54 . * @return T
ed40: 68 65 20 62 61 73 65 20 63 6c 61 73 73 20 72 65 he base class re
ed50: 74 75 72 6e 73 20 22 74 65 78 74 2f 70 6c 61 69 turns "text/plai
ed60: 6e 22 2e 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 n"... * @type
ed70: 20 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d String.. */.
ed80: 0a 20 20 20 20 67 65 74 43 6f 6e 74 65 6e 74 54 . getContentT
ed90: 79 70 65 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 ype: function()
eda0: 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 {.. retur
edb0: 6e 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 3b 0d n "text/plain";.
edc0: 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a . },.. /**
edd0: 20 0d 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e .. * @return
ede0: 20 52 65 74 75 72 6e 73 20 74 68 65 20 68 65 61 Returns the hea
edf0: 64 65 72 20 66 6f 72 20 74 68 65 20 6c 61 79 6f der for the layo
ee00: 75 74 20 66 6f 72 6d 61 74 2e 20 54 68 65 20 62 ut format. The b
ee10: 61 73 65 20 63 6c 61 73 73 20 72 65 74 75 72 6e ase class return
ee20: 73 20 6e 75 6c 6c 2e 0d 0a 20 20 20 20 2a 20 40 s null... * @
ee30: 74 79 70 65 20 53 74 72 69 6e 67 0d 0a 20 20 20 type String..
ee40: 20 2a 2f 0d 0a 20 20 20 20 67 65 74 48 65 61 64 */.. getHead
ee50: 65 72 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b er: function() {
ee60: 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
ee70: 20 22 22 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 "";.. },..
ee80: 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 40 72 /** .. * @r
ee90: 65 74 75 72 6e 20 52 65 74 75 72 6e 73 20 74 68 eturn Returns th
eea0: 65 20 66 6f 6f 74 65 72 20 66 6f 72 20 74 68 65 e footer for the
eeb0: 20 6c 61 79 6f 75 74 20 66 6f 72 6d 61 74 2e 20 layout format.
eec0: 54 68 65 20 62 61 73 65 20 63 6c 61 73 73 20 72 The base class r
eed0: 65 74 75 72 6e 73 20 6e 75 6c 6c 2e 0d 0a 20 20 eturns null...
eee0: 20 20 2a 20 40 74 79 70 65 20 53 74 72 69 6e 67 * @type String
eef0: 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 67 65 .. */.. ge
ef00: 74 46 6f 6f 74 65 72 3a 20 66 75 6e 63 74 69 6f tFooter: functio
ef10: 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 n() {.. r
ef20: 65 74 75 72 6e 20 22 22 3b 0d 0a 20 20 20 20 7d eturn "";.. }
ef30: 0d 0a 7d 29 3b 0d 0a 20 20 20 20 0d 0a 2f 2a 2a ..});.. ../**
ef40: 0d 0a 2a 20 42 61 73 69 63 4c 61 79 6f 75 74 20 ..* BasicLayout
ef50: 69 73 20 61 20 73 69 6d 70 6c 65 20 6c 61 79 6f is a simple layo
ef60: 75 74 20 66 6f 72 20 73 74 6f 72 69 6e 67 20 74 ut for storing t
ef70: 68 65 20 6c 6f 67 67 73 2e 20 54 68 65 20 6c 6f he loggs. The lo
ef80: 67 67 73 20 61 72 65 20 73 74 6f 72 65 64 0d 0a ggs are stored..
ef90: 2a 20 69 6e 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 * in following f
efa0: 6f 72 6d 61 74 3a 0d 0a 2a 20 3c 70 72 65 3e 0d ormat:..* <pre>.
efb0: 0a 2a 20 63 61 74 65 67 6f 72 79 4e 61 6d 65 7e .* categoryName~
efc0: 73 74 61 72 74 54 69 6d 65 20 5b 6c 6f 67 4c 65 startTime [logLe
efd0: 76 65 6c 5d 20 6d 65 73 73 61 67 65 5c 6e 0d 0a vel] message\n..
efe0: 2a 20 3c 2f 70 72 65 3e 0d 0a 2a 0d 0a 2a 20 40 * </pre>..*..* @
eff0: 63 6f 6e 73 74 72 75 63 74 6f 72 0d 0a 2a 20 40 constructor..* @
f000: 65 78 74 65 6e 64 73 20 4c 6f 67 34 6a 73 2e 4c extends Log4js.L
f010: 61 79 6f 75 74 0d 0a 2a 20 40 61 75 74 68 6f 72 ayout..* @author
f020: 20 53 74 65 70 68 61 6e 20 53 74 72 69 74 74 6d Stephan Strittm
f030: 61 74 74 65 72 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a atter..*/..Log4j
f040: 73 2e 42 61 73 69 63 4c 61 79 6f 75 74 20 3d 20 s.BasicLayout =
f050: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 function() {..
f060: 20 20 74 68 69 73 2e 4c 49 4e 45 5f 53 45 50 20 this.LINE_SEP
f070: 20 3d 20 22 5c 6e 22 3b 0d 0a 7d 3b 0d 0a 0d 0a = "\n";..};....
f080: 4c 6f 67 34 6a 73 2e 42 61 73 69 63 4c 61 79 6f Log4js.BasicLayo
f090: 75 74 2e 70 72 6f 74 6f 74 79 70 65 20 3d 20 4c ut.prototype = L
f0a0: 6f 67 34 6a 73 2e 65 78 74 65 6e 64 28 6e 65 77 og4js.extend(new
f0b0: 20 4c 6f 67 34 6a 73 2e 4c 61 79 6f 75 74 28 29 Log4js.Layout()
f0c0: 2c 20 7b 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 , {.. /** ..
f0d0: 20 20 20 2a 20 49 6d 70 6c 65 6d 65 6e 74 20 74 * Implement t
f0e0: 68 69 73 20 6d 65 74 68 6f 64 20 74 6f 20 63 72 his method to cr
f0f0: 65 61 74 65 20 79 6f 75 72 20 6f 77 6e 20 6c 61 eate your own la
f100: 79 6f 75 74 20 66 6f 72 6d 61 74 2e 0d 0a 20 20 yout format...
f110: 20 20 2a 20 40 70 61 72 61 6d 20 7b 4c 6f 67 34 * @param {Log4
f120: 6a 73 2e 4c 6f 67 67 69 6e 67 45 76 65 6e 74 7d js.LoggingEvent}
f130: 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 20 6c 6f loggingEvent lo
f140: 67 67 69 6e 67 45 76 65 6e 74 20 74 6f 20 66 6f ggingEvent to fo
f150: 72 6d 61 74 0d 0a 20 20 20 20 2a 20 40 72 65 74 rmat.. * @ret
f160: 75 72 6e 20 66 6f 72 6d 61 74 74 65 64 20 53 74 urn formatted St
f170: 72 69 6e 67 0d 0a 20 20 20 20 2a 20 40 74 79 70 ring.. * @typ
f180: 65 20 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f e String.. */
f190: 0d 0a 20 20 20 20 66 6f 72 6d 61 74 3a 20 66 75 .. format: fu
f1a0: 6e 63 74 69 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 nction(loggingEv
f1b0: 65 6e 74 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 ent) {..
f1c0: 72 65 74 75 72 6e 20 6c 6f 67 67 69 6e 67 45 76 return loggingEv
f1d0: 65 6e 74 2e 63 61 74 65 67 6f 72 79 4e 61 6d 65 ent.categoryName
f1e0: 20 2b 20 22 7e 22 20 2b 20 6c 6f 67 67 69 6e 67 + "~" + logging
f1f0: 45 76 65 6e 74 2e 73 74 61 72 74 54 69 6d 65 2e Event.startTime.
f200: 74 6f 4c 6f 63 61 6c 65 53 74 72 69 6e 67 28 29 toLocaleString()
f210: 20 2b 20 22 20 5b 22 20 2b 20 6c 6f 67 67 69 6e + " [" + loggin
f220: 67 45 76 65 6e 74 2e 6c 65 76 65 6c 2e 74 6f 53 gEvent.level.toS
f230: 74 72 69 6e 67 28 29 20 2b 20 22 5d 20 22 20 2b tring() + "] " +
f240: 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e 6d 65 loggingEvent.me
f250: 73 73 61 67 65 20 2b 20 74 68 69 73 2e 4c 49 4e ssage + this.LIN
f260: 45 5f 53 45 50 3b 0d 0a 20 20 20 20 7d 2c 0d 0a E_SEP;.. },..
f270: 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 /** .. *
f280: 52 65 74 75 72 6e 73 20 74 68 65 20 63 6f 6e 74 Returns the cont
f290: 65 6e 74 20 74 79 70 65 20 6f 75 74 70 75 74 20 ent type output
f2a0: 62 79 20 74 68 69 73 20 6c 61 79 6f 75 74 2e 20 by this layout.
f2b0: 0d 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 .. * @return
f2c0: 54 68 65 20 62 61 73 65 20 63 6c 61 73 73 20 72 The base class r
f2d0: 65 74 75 72 6e 73 20 22 74 65 78 74 2f 70 6c 61 eturns "text/pla
f2e0: 69 6e 22 2e 0d 0a 20 20 20 20 2a 20 40 74 79 70 in"... * @typ
f2f0: 65 20 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f e String.. */
f300: 0d 0a 20 20 20 20 67 65 74 43 6f 6e 74 65 6e 74 .. getContent
f310: 54 79 70 65 3a 20 66 75 6e 63 74 69 6f 6e 28 29 Type: function()
f320: 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 {.. retu
f330: 72 6e 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 3b rn "text/plain";
f340: 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a .. },.. /*
f350: 2a 20 0d 0a 20 20 20 20 2a 20 40 72 65 74 75 72 * .. * @retur
f360: 6e 20 52 65 74 75 72 6e 73 20 74 68 65 20 68 65 n Returns the he
f370: 61 64 65 72 20 66 6f 72 20 74 68 65 20 6c 61 79 ader for the lay
f380: 6f 75 74 20 66 6f 72 6d 61 74 2e 20 54 68 65 20 out format. The
f390: 62 61 73 65 20 63 6c 61 73 73 20 72 65 74 75 72 base class retur
f3a0: 6e 73 20 6e 75 6c 6c 2e 0d 0a 20 20 20 20 2a 20 ns null... *
f3b0: 40 74 79 70 65 20 53 74 72 69 6e 67 0d 0a 20 20 @type String..
f3c0: 20 20 2a 2f 0d 0a 20 20 20 20 67 65 74 48 65 61 */.. getHea
f3d0: 64 65 72 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 der: function()
f3e0: 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 {.. retur
f3f0: 6e 20 22 22 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 n "";.. },..
f400: 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 40 /** .. * @
f410: 72 65 74 75 72 6e 20 52 65 74 75 72 6e 73 20 74 return Returns t
f420: 68 65 20 66 6f 6f 74 65 72 20 66 6f 72 20 74 68 he footer for th
f430: 65 20 6c 61 79 6f 75 74 20 66 6f 72 6d 61 74 2e e layout format.
f440: 20 54 68 65 20 62 61 73 65 20 63 6c 61 73 73 20 The base class
f450: 72 65 74 75 72 6e 73 20 6e 75 6c 6c 2e 0d 0a 20 returns null...
f460: 20 20 20 2a 20 40 74 79 70 65 20 53 74 72 69 6e * @type Strin
f470: 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 67 g.. */.. g
f480: 65 74 46 6f 6f 74 65 72 3a 20 66 75 6e 63 74 69 etFooter: functi
f490: 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 on() {..
f4a0: 72 65 74 75 72 6e 20 22 22 3b 0d 0a 20 20 20 20 return "";..
f4b0: 7d 0d 0a 7d 29 3b 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a }..});..../**..*
f4c0: 20 48 74 6d 6c 4c 61 79 6f 75 74 20 77 72 69 74 HtmlLayout writ
f4d0: 65 20 74 68 65 20 6c 6f 67 73 20 69 6e 20 48 74 e the logs in Ht
f4e0: 6d 6c 20 66 6f 72 6d 61 74 2e 0d 0a 2a 0d 0a 2a ml format...*..*
f4f0: 20 40 63 6f 6e 73 74 72 75 63 74 6f 72 0d 0a 2a @constructor..*
f500: 20 40 65 78 74 65 6e 64 73 20 4c 6f 67 34 6a 73 @extends Log4js
f510: 2e 4c 61 79 6f 75 74 0d 0a 2a 20 40 61 75 74 68 .Layout..* @auth
f520: 6f 72 20 53 74 65 70 68 61 6e 20 53 74 72 69 74 or Stephan Strit
f530: 74 6d 61 74 74 65 72 0d 0a 2a 2f 0d 0a 4c 6f 67 tmatter..*/..Log
f540: 34 6a 73 2e 48 74 6d 6c 4c 61 79 6f 75 74 20 3d 4js.HtmlLayout =
f550: 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 72 65 74 function() {ret
f560: 75 72 6e 3b 7d 3b 0d 0a 0d 0a 4c 6f 67 34 6a 73 urn;};....Log4js
f570: 2e 48 74 6d 6c 4c 61 79 6f 75 74 2e 70 72 6f 74 .HtmlLayout.prot
f580: 6f 74 79 70 65 20 3d 20 4c 6f 67 34 6a 73 2e 65 otype = Log4js.e
f590: 78 74 65 6e 64 28 6e 65 77 20 4c 6f 67 34 6a 73 xtend(new Log4js
f5a0: 2e 4c 61 79 6f 75 74 28 29 2c 20 7b 0d 0a 20 20 .Layout(), {..
f5b0: 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 49 6d /** .. * Im
f5c0: 70 6c 65 6d 65 6e 74 20 74 68 69 73 20 6d 65 74 plement this met
f5d0: 68 6f 64 20 74 6f 20 63 72 65 61 74 65 20 79 6f hod to create yo
f5e0: 75 72 20 6f 77 6e 20 6c 61 79 6f 75 74 20 66 6f ur own layout fo
f5f0: 72 6d 61 74 2e 0d 0a 20 20 20 20 2a 20 40 70 61 rmat... * @pa
f600: 72 61 6d 20 7b 4c 6f 67 34 6a 73 2e 4c 6f 67 67 ram {Log4js.Logg
f610: 69 6e 67 45 76 65 6e 74 7d 20 6c 6f 67 67 69 6e ingEvent} loggin
f620: 67 45 76 65 6e 74 20 6c 6f 67 67 69 6e 67 45 76 gEvent loggingEv
f630: 65 6e 74 20 74 6f 20 66 6f 72 6d 61 74 0d 0a 20 ent to format..
f640: 20 20 20 2a 20 40 72 65 74 75 72 6e 20 66 6f 72 * @return for
f650: 6d 61 74 74 65 64 20 53 74 72 69 6e 67 0d 0a 20 matted String..
f660: 20 20 20 2a 20 40 74 79 70 65 20 53 74 72 69 6e * @type Strin
f670: 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 66 g.. */.. f
f680: 6f 72 6d 61 74 3a 20 66 75 6e 63 74 69 6f 6e 28 ormat: function(
f690: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 29 20 7b 0d loggingEvent) {.
f6a0: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
f6b0: 22 3c 64 69 76 20 73 74 79 6c 65 3d 5c 22 22 20 "<div style=\""
f6c0: 2b 20 74 68 69 73 2e 67 65 74 53 74 79 6c 65 28 + this.getStyle(
f6d0: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 29 20 2b 20 loggingEvent) +
f6e0: 22 5c 22 3e 22 20 2b 20 6c 6f 67 67 69 6e 67 45 "\">" + loggingE
f6f0: 76 65 6e 74 2e 67 65 74 46 6f 72 6d 61 74 74 65 vent.getFormatte
f700: 64 54 69 6d 65 73 74 61 6d 70 28 29 20 2b 20 22 dTimestamp() + "
f710: 20 2d 20 22 20 2b 20 6c 6f 67 67 69 6e 67 45 76 - " + loggingEv
f720: 65 6e 74 2e 6c 65 76 65 6c 2e 74 6f 53 74 72 69 ent.level.toStri
f730: 6e 67 28 29 20 2b 20 22 20 2d 20 22 20 2b 20 6c ng() + " - " + l
f740: 6f 67 67 69 6e 67 45 76 65 6e 74 2e 6d 65 73 73 oggingEvent.mess
f750: 61 67 65 20 2b 20 22 3c 2f 64 69 76 3e 5c 6e 22 age + "</div>\n"
f760: 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 2f ;.. },.. /
f770: 2a 2a 20 0d 0a 20 20 20 20 2a 20 52 65 74 75 72 ** .. * Retur
f780: 6e 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 74 ns the content t
f790: 79 70 65 20 6f 75 74 70 75 74 20 62 79 20 74 68 ype output by th
f7a0: 69 73 20 6c 61 79 6f 75 74 2e 20 0d 0a 20 20 20 is layout. ..
f7b0: 20 2a 20 40 72 65 74 75 72 6e 20 54 68 65 20 62 * @return The b
f7c0: 61 73 65 20 63 6c 61 73 73 20 72 65 74 75 72 6e ase class return
f7d0: 73 20 22 74 65 78 74 2f 68 74 6d 6c 22 2e 0d 0a s "text/html"...
f7e0: 20 20 20 20 2a 20 40 74 79 70 65 20 53 74 72 69 * @type Stri
f7f0: 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 ng.. */..
f800: 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 65 3a 20 getContentType:
f810: 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 function() {..
f820: 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 74 65 return "te
f830: 78 74 2f 68 74 6d 6c 22 3b 0d 0a 20 20 20 20 7d xt/html";.. }
f840: 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 ,.. /** ..
f850: 20 2a 20 40 72 65 74 75 72 6e 20 52 65 74 75 72 * @return Retur
f860: 6e 73 20 74 68 65 20 68 65 61 64 65 72 20 66 6f ns the header fo
f870: 72 20 74 68 65 20 6c 61 79 6f 75 74 20 66 6f 72 r the layout for
f880: 6d 61 74 2e 20 54 68 65 20 62 61 73 65 20 63 6c mat. The base cl
f890: 61 73 73 20 72 65 74 75 72 6e 73 20 6e 75 6c 6c ass returns null
f8a0: 2e 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 53 ... * @type S
f8b0: 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 tring.. */..
f8c0: 20 20 20 67 65 74 48 65 61 64 65 72 3a 20 66 75 getHeader: fu
f8d0: 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 nction() {..
f8e0: 20 20 20 20 72 65 74 75 72 6e 20 22 3c 68 74 6d return "<htm
f8f0: 6c 3e 3c 68 65 61 64 3e 3c 74 69 74 6c 65 3e 6c l><head><title>l
f900: 6f 67 34 6a 73 3c 2f 68 65 61 64 3e 3c 62 6f 64 og4js</head><bod
f910: 79 3e 22 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 y>";.. },..
f920: 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 40 72 /** .. * @r
f930: 65 74 75 72 6e 20 52 65 74 75 72 6e 73 20 74 68 eturn Returns th
f940: 65 20 66 6f 6f 74 65 72 20 66 6f 72 20 74 68 65 e footer for the
f950: 20 6c 61 79 6f 75 74 20 66 6f 72 6d 61 74 2e 20 layout format.
f960: 54 68 65 20 62 61 73 65 20 63 6c 61 73 73 20 72 The base class r
f970: 65 74 75 72 6e 73 20 6e 75 6c 6c 2e 0d 0a 20 20 eturns null...
f980: 20 20 2a 20 40 74 79 70 65 20 53 74 72 69 6e 67 * @type String
f990: 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 67 65 .. */.. ge
f9a0: 74 46 6f 6f 74 65 72 3a 20 66 75 6e 63 74 69 6f tFooter: functio
f9b0: 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 n() {.. r
f9c0: 65 74 75 72 6e 20 22 3c 2f 62 6f 64 79 3e 3c 2f eturn "</body></
f9d0: 68 74 6d 6c 3e 22 3b 0d 0a 20 20 20 20 7d 2c 0d html>";.. },.
f9e0: 0a 20 20 20 20 0d 0a 20 20 20 20 67 65 74 53 74 . .. getSt
f9f0: 79 6c 65 3a 20 66 75 6e 63 74 69 6f 6e 28 6c 6f yle: function(lo
fa00: 67 67 69 6e 67 45 76 65 6e 74 29 0d 0a 20 20 20 ggingEvent)..
fa10: 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 {.. var
fa20: 73 74 79 6c 65 3b 0d 0a 20 20 20 20 20 20 20 20 style;..
fa30: 69 66 20 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 if (loggingEvent
fa40: 2e 6c 65 76 65 6c 2e 74 6f 53 74 72 69 6e 67 28 .level.toString(
fa50: 29 2e 73 65 61 72 63 68 28 2f 45 52 52 4f 52 2f ).search(/ERROR/
fa60: 29 20 21 3d 20 2d 31 29 20 7b 20 0d 0a 20 20 20 ) != -1) { ..
fa70: 20 20 20 20 20 20 20 20 20 73 74 79 6c 65 20 3d style =
fa80: 20 27 63 6f 6c 6f 72 3a 72 65 64 27 3b 0d 0a 20 'color:red';..
fa90: 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 } else if
faa0: 20 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e 6c (loggingEvent.l
fab0: 65 76 65 6c 2e 74 6f 53 74 72 69 6e 67 28 29 2e evel.toString().
fac0: 73 65 61 72 63 68 28 2f 46 41 54 41 4c 2f 29 20 search(/FATAL/)
fad0: 21 3d 20 2d 31 29 20 7b 20 0d 0a 20 20 20 20 20 != -1) { ..
fae0: 20 20 20 20 20 20 20 73 74 79 6c 65 20 3d 20 27 style = '
faf0: 63 6f 6c 6f 72 3a 72 65 64 27 3b 0d 0a 20 20 20 color:red';..
fb00: 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 } else if (
fb10: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e 6c 65 76 loggingEvent.lev
fb20: 65 6c 2e 74 6f 53 74 72 69 6e 67 28 29 2e 73 65 el.toString().se
fb30: 61 72 63 68 28 2f 57 41 52 4e 2f 29 20 21 3d 20 arch(/WARN/) !=
fb40: 2d 31 29 20 7b 20 0d 0a 20 20 20 20 20 20 20 20 -1) { ..
fb50: 20 20 20 20 73 74 79 6c 65 20 3d 20 27 63 6f 6c style = 'col
fb60: 6f 72 3a 6f 72 61 6e 67 65 27 3b 0d 0a 20 20 20 or:orange';..
fb70: 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 } else if (
fb80: 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e 6c 65 76 loggingEvent.lev
fb90: 65 6c 2e 74 6f 53 74 72 69 6e 67 28 29 2e 73 65 el.toString().se
fba0: 61 72 63 68 28 2f 44 45 42 55 47 2f 29 20 21 3d arch(/DEBUG/) !=
fbb0: 20 2d 31 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 -1) {..
fbc0: 20 20 20 20 73 74 79 6c 65 20 3d 20 27 63 6f 6c style = 'col
fbd0: 6f 72 3a 67 72 65 65 6e 27 3b 0d 0a 20 20 20 20 or:green';..
fbe0: 20 20 20 20 7d 20 65 6c 73 65 20 69 66 20 28 6c } else if (l
fbf0: 6f 67 67 69 6e 67 45 76 65 6e 74 2e 6c 65 76 65 oggingEvent.leve
fc00: 6c 2e 74 6f 53 74 72 69 6e 67 28 29 2e 73 65 61 l.toString().sea
fc10: 72 63 68 28 2f 49 4e 46 4f 2f 29 20 21 3d 20 2d rch(/INFO/) != -
fc20: 31 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 1) {..
fc30: 20 20 73 74 79 6c 65 20 3d 20 27 63 6f 6c 6f 72 style = 'color
fc40: 3a 77 68 69 74 65 27 3b 0d 0a 20 20 20 20 20 20 :white';..
fc50: 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 20 20 } else {..
fc60: 20 20 20 20 20 20 20 20 73 74 79 6c 65 20 3d 20 style =
fc70: 27 63 6f 6c 6f 72 3a 79 65 6c 6c 6f 77 27 3b 0d 'color:yellow';.
fc80: 0a 20 20 20 20 20 20 20 20 7d 09 0d 0a 20 20 20 . }...
fc90: 20 20 20 20 20 72 65 74 75 72 6e 20 73 74 79 6c return styl
fca0: 65 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 29 3b 0d 0a e;.. }..});..
fcb0: 0d 0a 2f 2a 2a 0d 0a 2a 20 58 4d 4c 4c 61 79 6f ../**..* XMLLayo
fcc0: 75 74 20 77 72 69 74 65 20 74 68 65 20 6c 6f 67 ut write the log
fcd0: 73 20 69 6e 20 58 4d 4c 20 66 6f 72 6d 61 74 2e s in XML format.
fce0: 0d 0a 2a 20 4c 61 79 6f 75 74 20 69 73 20 73 69 ..* Layout is si
fcf0: 6d 6d 69 6c 61 72 20 74 6f 20 6c 6f 67 34 6a 27 mmilar to log4j'
fd00: 73 20 58 4d 4c 4c 61 79 6f 75 74 3a 0d 0a 2a 20 s XMLLayout:..*
fd10: 3c 70 72 65 3e 0d 0a 2a 20 3c 6c 6f 67 34 6a 73 <pre>..* <log4js
fd20: 3a 65 76 65 6e 74 20 63 61 74 65 67 6f 72 79 3d :event category=
fd30: 22 63 61 74 65 67 6f 72 79 22 20 6c 65 76 65 6c "category" level
fd40: 3d 22 4c 65 76 65 6c 22 20 63 6c 69 65 6e 74 3d ="Level" client=
fd50: 22 43 6c 69 65 6e 74 22 20 72 65 66 65 72 65 72 "Client" referer
fd60: 3d 22 72 65 66 22 20 74 69 6d 65 73 74 61 6d 3d ="ref" timestam=
fd70: 22 44 61 74 65 22 3e 0d 0a 2a 20 3c 6c 6f 67 34 "Date">..* <log4
fd80: 6a 73 3a 6d 65 73 73 61 67 65 3e 4c 6f 67 67 65 js:message>Logge
fd90: 64 20 6d 65 73 73 61 67 65 3c 2f 6c 6f 67 34 6a d message</log4j
fda0: 73 3a 6d 65 73 73 61 67 65 3e 0d 0a 2a 20 3c 2f s:message>..* </
fdb0: 6c 6f 67 34 6a 73 3a 65 76 65 6e 74 3e 0d 0a 2a log4js:event>..*
fdc0: 20 3c 2f 70 72 65 3e 0d 0a 2a 20 40 63 6f 6e 73 </pre>..* @cons
fdd0: 74 72 75 63 74 6f 72 0d 0a 2a 20 40 65 78 74 65 tructor..* @exte
fde0: 6e 64 73 20 4c 61 79 6f 75 74 0d 0a 2a 20 40 61 nds Layout..* @a
fdf0: 75 74 68 6f 72 20 53 74 65 70 68 61 6e 20 53 74 uthor Stephan St
fe00: 72 69 74 74 6d 61 74 74 65 72 0d 0a 2a 2f 0d 0a rittmatter..*/..
fe10: 4c 6f 67 34 6a 73 2e 58 4d 4c 4c 61 79 6f 75 74 Log4js.XMLLayout
fe20: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 7b 72 65 = function(){re
fe30: 74 75 72 6e 3b 7d 3b 0d 0a 4c 6f 67 34 6a 73 2e turn;};..Log4js.
fe40: 58 4d 4c 4c 61 79 6f 75 74 2e 70 72 6f 74 6f 74 XMLLayout.protot
fe50: 79 70 65 20 3d 20 4c 6f 67 34 6a 73 2e 65 78 74 ype = Log4js.ext
fe60: 65 6e 64 28 6e 65 77 20 4c 6f 67 34 6a 73 2e 4c end(new Log4js.L
fe70: 61 79 6f 75 74 28 29 2c 20 7b 0d 0a 20 20 20 20 ayout(), {..
fe80: 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 49 6d 70 6c /** .. * Impl
fe90: 65 6d 65 6e 74 20 74 68 69 73 20 6d 65 74 68 6f ement this metho
fea0: 64 20 74 6f 20 63 72 65 61 74 65 20 79 6f 75 72 d to create your
feb0: 20 6f 77 6e 20 6c 61 79 6f 75 74 20 66 6f 72 6d own layout form
fec0: 61 74 2e 0d 0a 20 20 20 20 2a 20 40 70 61 72 61 at... * @para
fed0: 6d 20 7b 4c 6f 67 34 6a 73 2e 4c 6f 67 67 69 6e m {Log4js.Loggin
fee0: 67 45 76 65 6e 74 7d 20 6c 6f 67 67 69 6e 67 45 gEvent} loggingE
fef0: 76 65 6e 74 20 6c 6f 67 67 69 6e 67 45 76 65 6e vent loggingEven
ff00: 74 20 74 6f 20 66 6f 72 6d 61 74 0d 0a 20 20 20 t to format..
ff10: 20 2a 20 40 72 65 74 75 72 6e 20 66 6f 72 6d 61 * @return forma
ff20: 74 74 65 64 20 53 74 72 69 6e 67 0d 0a 20 20 20 tted String..
ff30: 20 2a 20 40 74 79 70 65 20 53 74 72 69 6e 67 0d * @type String.
ff40: 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 66 6f 72 . */.. for
ff50: 6d 61 74 3a 20 66 75 6e 63 74 69 6f 6e 28 6c 6f mat: function(lo
ff60: 67 67 69 6e 67 45 76 65 6e 74 29 20 7b 0d 0a 20 ggingEvent) {..
ff70: 20 20 20 20 20 20 20 76 61 72 20 75 73 65 72 61 var usera
ff80: 67 65 6e 74 20 3d 20 22 75 6e 6b 6e 6f 77 6e 22 gent = "unknown"
ff90: 3b 0d 0a 20 20 20 20 20 20 20 20 74 72 79 20 7b ;.. try {
ffa0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 73 .. us
ffb0: 65 72 61 67 65 6e 74 20 3d 20 6e 61 76 69 67 61 eragent = naviga
ffc0: 74 6f 72 2e 75 73 65 72 41 67 65 6e 74 3b 0d 0a tor.userAgent;..
ffd0: 20 20 20 20 20 20 20 20 7d 20 63 61 74 63 68 28 } catch(
ffe0: 65 29 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 e){..
fff0: 20 75 73 65 72 61 67 65 6e 74 20 3d 20 22 75 6e useragent = "un
10000 6b 6e 6f 77 6e 22 3b 0d 0a 20 20 20 20 20 20 20 known";..
10010 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 }.. ..
10020 20 20 20 20 20 20 76 61 72 20 72 65 66 65 72 65 var refere
10030 72 20 3d 20 22 75 6e 6b 6e 6f 77 6e 22 3b 0d 0a r = "unknown";..
10040 20 20 20 20 20 20 20 20 74 72 79 20 7b 0d 0a 20 try {..
10050 20 20 20 20 20 20 20 20 20 20 20 72 65 66 65 72 refer
10060 65 72 20 3d 20 6c 6f 63 61 74 69 6f 6e 2e 68 72 er = location.hr
10070 65 66 3b 0d 0a 20 20 20 20 20 20 20 20 7d 20 63 ef;.. } c
10080 61 74 63 68 28 65 29 7b 0d 0a 20 20 20 20 20 20 atch(e){..
10090 20 20 20 20 20 20 72 65 66 65 72 65 72 20 3d 20 referer =
100a0 22 75 6e 6b 6e 6f 77 6e 22 3b 0d 0a 20 20 20 20 "unknown";..
100b0 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 }..
100c0 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 ..
100d0 20 76 61 72 20 63 6f 6e 74 65 6e 74 20 3d 20 22 var content = "
100e0 3c 6c 6f 67 34 6a 73 3a 65 76 65 6e 74 20 6c 6f <log4js:event lo
100f0 67 67 65 72 3d 5c 22 22 3b 0d 0a 20 20 20 20 20 gger=\"";..
10100 20 20 20 63 6f 6e 74 65 6e 74 20 2b 3d 20 6c 6f content += lo
10110 67 67 69 6e 67 45 76 65 6e 74 2e 63 61 74 65 67 ggingEvent.categ
10120 6f 72 79 4e 61 6d 65 20 2b 20 22 5c 22 20 6c 65 oryName + "\" le
10130 76 65 6c 3d 5c 22 22 3b 0d 0a 20 20 20 20 20 20 vel=\"";..
10140 20 20 63 6f 6e 74 65 6e 74 20 2b 3d 20 6c 6f 67 content += log
10150 67 69 6e 67 45 76 65 6e 74 2e 6c 65 76 65 6c 2e gingEvent.level.
10160 74 6f 53 74 72 69 6e 67 28 29 20 2b 20 22 5c 22 toString() + "\"
10170 20 75 73 65 72 61 67 65 6e 74 3d 5c 22 22 3b 0d useragent=\"";.
10180 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 . content
10190 20 2b 3d 20 75 73 65 72 61 67 65 6e 74 20 2b 20 += useragent +
101a0 22 5c 22 20 72 65 66 65 72 65 72 3d 5c 22 22 3b "\" referer=\"";
101b0 0d 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 65 6e .. conten
101c0 74 20 2b 3d 20 72 65 66 65 72 65 72 2e 72 65 70 t += referer.rep
101d0 6c 61 63 65 28 2f 26 2f 67 2c 20 22 26 61 6d 70 lace(/&/g, "&
101e0 3b 22 29 20 2b 20 22 5c 22 20 74 69 6d 65 73 74 ;") + "\" timest
101f0 61 6d 70 3d 5c 22 22 3b 0d 0a 20 20 20 20 20 20 amp=\"";..
10200 20 20 63 6f 6e 74 65 6e 74 20 2b 3d 20 6c 6f 67 content += log
10210 67 69 6e 67 45 76 65 6e 74 2e 67 65 74 46 6f 72 gingEvent.getFor
10220 6d 61 74 74 65 64 54 69 6d 65 73 74 61 6d 70 28 mattedTimestamp(
10230 29 20 2b 20 22 5c 22 3e 5c 6e 22 3b 0d 0a 20 20 ) + "\">\n";..
10240 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 20 2b 3d content +=
10250 20 22 5c 74 3c 6c 6f 67 34 6a 73 3a 6d 65 73 73 "\t<log4js:mess
10260 61 67 65 3e 3c 21 5b 43 44 41 54 41 5b 22 20 2b age><![CDATA[" +
10270 20 74 68 69 73 2e 65 73 63 61 70 65 43 64 61 74 this.escapeCdat
10280 61 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e 6d a(loggingEvent.m
10290 65 73 73 61 67 65 29 20 2b 20 22 5d 5d 3e 3c 2f essage) + "]]></
102a0 6c 6f 67 34 6a 73 3a 6d 65 73 73 61 67 65 3e 5c log4js:message>\
102b0 6e 22 3b 09 0d 0a 20 20 20 20 20 20 20 20 0d 0a n";... ..
102c0 20 20 20 20 20 20 20 20 69 66 20 28 6c 6f 67 67 if (logg
102d0 69 6e 67 45 76 65 6e 74 2e 65 78 63 65 70 74 69 ingEvent.excepti
102e0 6f 6e 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 on) {..
102f0 20 20 20 63 6f 6e 74 65 6e 74 20 2b 3d 20 74 68 content += th
10300 69 73 2e 66 6f 72 6d 61 74 45 78 63 65 70 74 69 is.formatExcepti
10310 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e on(loggingEvent.
10320 65 78 63 65 70 74 69 6f 6e 29 20 3b 0d 0a 20 20 exception) ;..
10330 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
10340 20 63 6f 6e 74 65 6e 74 20 2b 3d 20 22 3c 2f 6c content += "</l
10350 6f 67 34 6a 73 3a 65 76 65 6e 74 3e 5c 6e 22 3b og4js:event>\n";
10360 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 .. ..
10370 20 20 20 20 72 65 74 75 72 6e 20 63 6f 6e 74 65 return conte
10380 6e 74 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 nt;.. },..
10390 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 52 65 74 /** .. * Ret
103a0 75 72 6e 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 urns the content
103b0 20 74 79 70 65 20 6f 75 74 70 75 74 20 62 79 20 type output by
103c0 74 68 69 73 20 6c 61 79 6f 75 74 2e 20 0d 0a 20 this layout. ..
103d0 20 20 20 2a 20 40 72 65 74 75 72 6e 20 54 68 65 * @return The
103e0 20 62 61 73 65 20 63 6c 61 73 73 20 72 65 74 75 base class retu
103f0 72 6e 73 20 22 74 65 78 74 2f 78 6d 6c 22 2e 0d rns "text/xml"..
10400 0a 20 20 20 20 2a 20 40 74 79 70 65 20 53 74 72 . * @type Str
10410 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 ing.. */..
10420 20 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 65 3a getContentType:
10430 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 function() {..
10440 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 74 return "t
10450 65 78 74 2f 78 6d 6c 22 3b 0d 0a 20 20 20 20 7d ext/xml";.. }
10460 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 ,.. /** ..
10470 20 2a 20 40 72 65 74 75 72 6e 20 52 65 74 75 72 * @return Retur
10480 6e 73 20 74 68 65 20 68 65 61 64 65 72 20 66 6f ns the header fo
10490 72 20 74 68 65 20 6c 61 79 6f 75 74 20 66 6f 72 r the layout for
104a0 6d 61 74 2e 20 54 68 65 20 62 61 73 65 20 63 6c mat. The base cl
104b0 61 73 73 20 72 65 74 75 72 6e 73 20 6e 75 6c 6c ass returns null
104c0 2e 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 53 ... * @type S
104d0 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 tring.. */..
104e0 20 20 20 67 65 74 48 65 61 64 65 72 3a 20 66 75 getHeader: fu
104f0 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 nction() {..
10500 20 20 20 20 72 65 74 75 72 6e 20 22 3c 6c 6f 67 return "<log
10510 34 6a 73 3a 65 76 65 6e 74 53 65 74 20 76 65 72 4js:eventSet ver
10520 73 69 6f 6e 3d 5c 22 22 20 2b 20 4c 6f 67 34 6a sion=\"" + Log4j
10530 73 2e 76 65 72 73 69 6f 6e 20 2b 20 0d 0a 20 20 s.version + ..
10540 20 20 20 20 20 20 20 20 20 20 22 5c 22 20 78 6d "\" xm
10550 6c 6e 73 3a 6c 6f 67 34 6a 73 3d 5c 22 68 74 74 lns:log4js=\"htt
10560 70 3a 2f 2f 6c 6f 67 34 6a 73 2e 62 65 72 6c 69 p://log4js.berli
10570 6f 73 2e 64 65 2f 32 30 30 37 2f 6c 6f 67 34 6a os.de/2007/log4j
10580 73 2f 5c 22 3e 5c 6e 22 3b 0d 0a 20 20 20 20 7d s/\">\n";.. }
10590 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 ,.. /** ..
105a0 20 2a 20 40 72 65 74 75 72 6e 20 52 65 74 75 72 * @return Retur
105b0 6e 73 20 74 68 65 20 66 6f 6f 74 65 72 20 66 6f ns the footer fo
105c0 72 20 74 68 65 20 6c 61 79 6f 75 74 20 66 6f 72 r the layout for
105d0 6d 61 74 2e 20 54 68 65 20 62 61 73 65 20 63 6c mat. The base cl
105e0 61 73 73 20 72 65 74 75 72 6e 73 20 6e 75 6c 6c ass returns null
105f0 2e 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 53 ... * @type S
10600 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 tring.. */..
10610 20 20 20 67 65 74 46 6f 6f 74 65 72 3a 20 66 75 getFooter: fu
10620 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 nction() {..
10630 20 20 20 20 72 65 74 75 72 6e 20 22 3c 2f 6c 6f return "</lo
10640 67 34 6a 73 3a 65 76 65 6e 74 53 65 74 3e 5c 6e g4js:eventSet>\n
10650 22 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 ";.. },..
10660 0d 0a 20 20 20 20 67 65 74 53 65 70 61 72 61 74 .. getSeparat
10670 6f 72 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b or: function() {
10680 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
10690 20 22 5c 6e 22 3b 0d 0a 20 20 20 20 7d 2c 0d 0a "\n";.. },..
106a0 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 .. /**..
106b0 20 20 20 2a 20 62 65 74 74 65 72 20 72 65 61 64 * better read
106c0 61 62 6c 65 20 66 6f 72 6d 61 74 74 65 64 20 45 able formatted E
106d0 78 63 65 70 74 69 6f 6e 73 2e 0d 0a 20 20 20 20 xceptions...
106e0 2a 20 40 70 61 72 61 6d 20 65 78 20 7b 45 78 63 * @param ex {Exc
106f0 65 70 74 69 6f 6e 7d 20 74 68 65 20 65 78 63 65 eption} the exce
10700 70 74 69 6f 6e 20 74 6f 20 62 65 20 66 6f 72 6d ption to be form
10710 61 74 74 65 64 2e 0d 0a 20 20 20 20 2a 20 40 72 atted... * @r
10720 65 74 75 72 6e 20 7b 53 74 72 69 6e 67 7d 20 74 eturn {String} t
10730 68 65 20 66 6f 72 6d 61 74 74 65 64 20 53 74 72 he formatted Str
10740 69 6e 67 20 72 65 70 72 65 73 65 6e 74 61 74 69 ing representati
10750 6f 6e 20 6f 66 20 74 68 65 20 65 78 63 65 70 74 on of the except
10760 69 6f 6e 2e 0d 0a 20 20 20 20 2a 20 40 70 72 69 ion... * @pri
10770 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 vate.. */..
10780 20 20 66 6f 72 6d 61 74 45 78 63 65 70 74 69 6f formatExceptio
10790 6e 3a 20 66 75 6e 63 74 69 6f 6e 28 65 78 29 20 n: function(ex)
107a0 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 {.. if (e
107b0 78 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 x) {..
107c0 20 20 76 61 72 20 65 78 53 74 72 20 3d 20 22 5c var exStr = "\
107d0 74 3c 6c 6f 67 34 6a 73 3a 74 68 72 6f 77 61 62 t<log4js:throwab
107e0 6c 65 3e 22 3b 20 0d 0a 20 20 20 20 20 20 20 20 le>"; ..
107f0 20 20 20 20 69 66 20 28 65 78 2e 6d 65 73 73 61 if (ex.messa
10800 67 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 ge) {..
10810 20 20 20 20 20 20 20 65 78 53 74 72 20 2b 3d 20 exStr +=
10820 20 22 5c 74 5c 74 3c 6c 6f 67 34 6a 73 3a 6d 65 "\t\t<log4js:me
10830 73 73 61 67 65 3e 3c 21 5b 43 44 41 54 41 5b 22 ssage><![CDATA["
10840 20 2b 20 74 68 69 73 2e 65 73 63 61 70 65 43 64 + this.escapeCd
10850 61 74 61 28 65 78 2e 6d 65 73 73 61 67 65 29 20 ata(ex.message)
10860 2b 20 22 5d 5d 3e 3c 2f 6c 6f 67 34 6a 73 3a 6d + "]]></log4js:m
10870 65 73 73 61 67 65 3e 5c 6e 22 3b 09 0d 0a 20 20 essage>\n";...
10880 20 20 20 20 20 20 20 20 20 20 7d 20 0d 0a 20 20 } ..
10890 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 78 if (ex
108a0 2e 64 65 73 63 72 69 70 74 69 6f 6e 29 20 7b 0d .description) {.
108b0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
108c0 20 65 78 53 74 72 20 2b 3d 20 20 22 5c 74 5c 74 exStr += "\t\t
108d0 3c 6c 6f 67 34 6a 73 3a 64 65 73 63 72 69 70 74 <log4js:descript
108e0 69 6f 6e 3e 3c 21 5b 43 44 41 54 41 5b 22 20 2b ion><![CDATA[" +
108f0 20 74 68 69 73 2e 65 73 63 61 70 65 43 64 61 74 this.escapeCdat
10900 61 28 65 78 2e 64 65 73 63 72 69 70 74 69 6f 6e a(ex.description
10910 29 20 2b 20 22 5d 5d 3e 3c 2f 6c 6f 67 34 6a 73 ) + "]]></log4js
10920 3a 64 65 73 63 72 69 70 74 69 6f 6e 3e 5c 6e 22 :description>\n"
10930 3b 09 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ;...
10940 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d }.. .
10950 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 78 53 . exS
10960 74 72 20 2b 3d 20 20 22 5c 74 5c 74 3c 6c 6f 67 tr += "\t\t<log
10970 34 6a 73 3a 73 74 61 63 6b 74 72 61 63 65 3e 22 4js:stacktrace>"
10980 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 65 ;.. e
10990 78 53 74 72 20 2b 3d 20 20 22 5c 74 5c 74 5c 74 xStr += "\t\t\t
109a0 3c 6c 6f 67 34 6a 73 3a 6c 6f 63 61 74 69 6f 6e <log4js:location
109b0 20 66 69 6c 65 4e 61 6d 65 3d 5c 22 22 2b 65 78 fileName=\""+ex
109c0 2e 66 69 6c 65 4e 61 6d 65 2b 22 5c 22 20 6c 69 .fileName+"\" li
109d0 6e 65 4e 75 6d 62 65 72 3d 5c 22 22 2b 65 78 2e neNumber=\""+ex.
109e0 6c 69 6e 65 4e 75 6d 62 65 72 2b 22 5c 22 20 2f lineNumber+"\" /
109f0 3e 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 >";..
10a00 20 65 78 53 74 72 20 2b 3d 20 20 22 5c 74 5c 74 exStr += "\t\t
10a10 3c 2f 6c 6f 67 34 6a 73 3a 73 74 61 63 6b 74 72 </log4js:stacktr
10a20 61 63 65 3e 22 3b 0d 0a 20 20 20 20 20 20 20 20 ace>";..
10a30 20 20 20 20 65 78 53 74 72 20 3d 20 22 5c 74 3c exStr = "\t<
10a40 2f 6c 6f 67 34 6a 73 3a 74 68 72 6f 77 61 62 6c /log4js:throwabl
10a50 65 3e 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 e>";..
10a60 20 20 72 65 74 75 72 6e 20 65 78 53 74 72 3b 0d return exStr;.
10a70 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 . }..
10a80 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b return null;
10a90 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a .. },.. /*
10aa0 2a 0d 0a 20 20 20 20 2a 20 45 73 63 61 70 65 20 *.. * Escape
10ab0 43 64 61 74 61 20 6d 65 73 73 61 67 65 73 0d 0a Cdata messages..
10ac0 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 * @param str
10ad0 20 7b 53 74 72 69 6e 67 7d 20 6d 65 73 73 61 67 {String} messag
10ae0 65 20 74 6f 20 65 73 63 61 70 65 0d 0a 20 20 20 e to escape..
10af0 20 2a 20 40 72 65 74 75 72 6e 20 7b 53 74 72 69 * @return {Stri
10b00 6e 67 7d 20 74 68 65 20 65 73 63 61 70 65 64 20 ng} the escaped
10b10 6d 65 73 73 61 67 65 0d 0a 20 20 20 20 2a 20 40 message.. * @
10b20 70 72 69 76 61 74 65 0d 0a 20 20 20 20 2a 2f 0d private.. */.
10b30 0a 20 20 20 20 65 73 63 61 70 65 43 64 61 74 61 . escapeCdata
10b40 3a 20 66 75 6e 63 74 69 6f 6e 28 73 74 72 29 20 : function(str)
10b50 7b 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 {.. retur
10b60 6e 20 73 74 72 2e 72 65 70 6c 61 63 65 28 2f 5c n str.replace(/\
10b70 5d 5c 5d 3e 2f 2c 20 22 5d 5d 3e 5d 5d 26 67 74 ]\]>/, "]]>]]>
10b80 3b 3c 21 5b 43 44 41 54 41 5b 22 29 3b 0d 0a 20 ;<![CDATA[");..
10b90 20 20 20 7d 0d 0a 7d 29 3b 0d 0a 0d 0a 2f 2a 2a }..});..../**
10ba0 0d 0a 2a 20 4a 53 4f 4e 4c 61 79 6f 75 74 20 77 ..* JSONLayout w
10bb0 72 69 74 65 20 74 68 65 20 6c 6f 67 73 20 69 6e rite the logs in
10bc0 20 4a 53 4f 4e 20 66 6f 72 6d 61 74 2e 0d 0a 2a JSON format...*
10bd0 20 4a 53 4f 4e 20 6c 69 62 72 61 72 79 20 69 73 JSON library is
10be0 20 72 65 71 75 69 72 65 64 20 74 6f 20 75 73 65 required to use
10bf0 20 74 68 69 73 20 4c 61 79 6f 75 74 2e 20 53 65 this Layout. Se
10c00 65 20 61 6c 73 6f 20 7b 40 6c 69 6e 6b 20 68 74 e also {@link ht
10c10 74 70 3a 2f 2f 77 77 77 2e 6a 73 6f 6e 2e 6f 72 tp://www.json.or
10c20 67 7d 0d 0a 2a 20 40 63 6f 6e 73 74 72 75 63 74 g}..* @construct
10c30 6f 72 0d 0a 2a 20 40 65 78 74 65 6e 64 73 20 4c or..* @extends L
10c40 6f 67 34 6a 73 2e 4c 61 79 6f 75 74 0d 0a 2a 20 og4js.Layout..*
10c50 40 61 75 74 68 6f 72 20 53 74 65 70 68 61 6e 20 @author Stephan
10c60 53 74 72 69 74 74 6d 61 74 74 65 72 0d 0a 2a 2f Strittmatter..*/
10c70 0d 0a 4c 6f 67 34 6a 73 2e 4a 53 4f 4e 4c 61 79 ..Log4js.JSONLay
10c80 6f 75 74 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 out = function()
10c90 20 7b 0d 0a 20 20 20 20 74 68 69 73 2e 64 66 20 {.. this.df
10ca0 3d 20 6e 65 77 20 4c 6f 67 34 6a 73 2e 44 61 74 = new Log4js.Dat
10cb0 65 46 6f 72 6d 61 74 74 65 72 28 29 3b 0d 0a 7d eFormatter();..}
10cc0 3b 0d 0a 4c 6f 67 34 6a 73 2e 4a 53 4f 4e 4c 61 ;..Log4js.JSONLa
10cd0 79 6f 75 74 2e 70 72 6f 74 6f 74 79 70 65 20 3d yout.prototype =
10ce0 20 4c 6f 67 34 6a 73 2e 65 78 74 65 6e 64 28 6e Log4js.extend(n
10cf0 65 77 20 4c 6f 67 34 6a 73 2e 4c 61 79 6f 75 74 ew Log4js.Layout
10d00 28 29 2c 20 7b 0d 0a 20 20 20 20 2f 2a 2a 20 0d (), {.. /** .
10d10 0a 20 20 20 20 2a 20 49 6d 70 6c 65 6d 65 6e 74 . * Implement
10d20 20 74 68 69 73 20 6d 65 74 68 6f 64 20 74 6f 20 this method to
10d30 63 72 65 61 74 65 20 79 6f 75 72 20 6f 77 6e 20 create your own
10d40 6c 61 79 6f 75 74 20 66 6f 72 6d 61 74 2e 0d 0a layout format...
10d50 20 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 4c 6f * @param {Lo
10d60 67 34 6a 73 2e 4c 6f 67 67 69 6e 67 45 76 65 6e g4js.LoggingEven
10d70 74 7d 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 20 t} loggingEvent
10d80 6c 6f 67 67 69 6e 67 45 76 65 6e 74 20 74 6f 20 loggingEvent to
10d90 66 6f 72 6d 61 74 0d 0a 20 20 20 20 2a 20 40 72 format.. * @r
10da0 65 74 75 72 6e 20 66 6f 72 6d 61 74 74 65 64 20 eturn formatted
10db0 53 74 72 69 6e 67 0d 0a 20 20 20 20 2a 20 40 74 String.. * @t
10dc0 79 70 65 20 53 74 72 69 6e 67 0d 0a 20 20 20 20 ype String..
10dd0 2a 2f 0d 0a 20 20 20 20 66 6f 72 6d 61 74 3a 20 */.. format:
10de0 66 75 6e 63 74 69 6f 6e 28 6c 6f 67 67 69 6e 67 function(logging
10df0 45 76 65 6e 74 29 20 7b 0d 0a 20 20 20 20 20 20 Event) {..
10e00 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..
10e10 20 20 20 20 76 61 72 20 75 73 65 72 61 67 65 6e var useragen
10e20 74 20 3d 20 22 75 6e 6b 6e 6f 77 6e 22 3b 0d 0a t = "unknown";..
10e30 20 20 20 20 20 20 20 20 74 72 79 20 7b 0d 0a 20 try {..
10e40 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 61 usera
10e50 67 65 6e 74 20 3d 20 6e 61 76 69 67 61 74 6f 72 gent = navigator
10e60 2e 75 73 65 72 41 67 65 6e 74 3b 0d 0a 20 20 20 .userAgent;..
10e70 20 20 20 20 20 7d 20 63 61 74 63 68 28 65 29 7b } catch(e){
10e80 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 75 73 .. us
10e90 65 72 61 67 65 6e 74 20 3d 20 22 75 6e 6b 6e 6f eragent = "unkno
10ea0 77 6e 22 3b 0d 0a 20 20 20 20 20 20 20 20 7d 0d wn";.. }.
10eb0 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 . ..
10ec0 20 20 20 76 61 72 20 72 65 66 65 72 65 72 20 3d var referer =
10ed0 20 22 75 6e 6b 6e 6f 77 6e 22 3b 0d 0a 20 20 20 "unknown";..
10ee0 20 20 20 20 20 74 72 79 20 7b 0d 0a 20 20 20 20 try {..
10ef0 20 20 20 20 20 20 20 20 72 65 66 65 72 65 72 20 referer
10f00 3d 20 6c 6f 63 61 74 69 6f 6e 2e 68 72 65 66 3b = location.href;
10f10 0d 0a 20 20 20 20 20 20 20 20 7d 20 63 61 74 63 .. } catc
10f20 68 28 65 29 7b 0d 0a 20 20 20 20 20 20 20 20 20 h(e){..
10f30 20 20 20 72 65 66 65 72 65 72 20 3d 20 22 75 6e referer = "un
10f40 6b 6e 6f 77 6e 22 3b 0d 0a 20 20 20 20 20 20 20 known";..
10f50 20 7d 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 20 }.. ..
10f60 20 20 20 20 20 20 76 61 72 20 6a 73 6f 6e 53 74 var jsonSt
10f70 72 69 6e 67 20 3d 20 22 7b 5c 6e 20 5c 22 4c 6f ring = "{\n \"Lo
10f80 67 67 69 6e 67 45 76 65 6e 74 5c 22 3a 20 7b 5c ggingEvent\": {\
10f90 6e 22 3b 0d 0a 20 20 20 20 20 20 20 20 0d 0a 20 n";.. ..
10fa0 20 20 20 20 20 20 20 6a 73 6f 6e 53 74 72 69 6e jsonStrin
10fb0 67 20 2b 3d 20 22 5c 74 5c 22 6c 6f 67 67 65 72 g += "\t\"logger
10fc0 5c 22 3a 20 5c 22 22 20 2b 20 20 6c 6f 67 67 69 \": \"" + loggi
10fd0 6e 67 45 76 65 6e 74 2e 63 61 74 65 67 6f 72 79 ngEvent.category
10fe0 4e 61 6d 65 20 2b 20 22 5c 22 2c 5c 6e 22 3b 0d Name + "\",\n";.
10ff0 0a 20 20 20 20 20 20 20 20 6a 73 6f 6e 53 74 72 . jsonStr
11000 69 6e 67 20 2b 3d 20 22 5c 74 5c 22 6c 65 76 65 ing += "\t\"leve
11010 6c 5c 22 3a 20 5c 22 22 20 2b 20 20 6c 6f 67 67 l\": \"" + logg
11020 69 6e 67 45 76 65 6e 74 2e 6c 65 76 65 6c 2e 74 ingEvent.level.t
11030 6f 53 74 72 69 6e 67 28 29 20 2b 20 22 5c 22 2c oString() + "\",
11040 5c 6e 22 3b 0d 0a 20 20 20 20 20 20 20 20 6a 73 \n";.. js
11050 6f 6e 53 74 72 69 6e 67 20 2b 3d 20 22 5c 74 5c onString += "\t\
11060 22 6d 65 73 73 61 67 65 5c 22 3a 20 5c 22 22 20 "message\": \""
11070 2b 20 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e + loggingEvent.
11080 6d 65 73 73 61 67 65 20 2b 20 22 5c 22 2c 5c 6e message + "\",\n
11090 22 3b 20 0d 0a 20 20 20 20 20 20 20 20 6a 73 6f "; .. jso
110a0 6e 53 74 72 69 6e 67 20 2b 3d 20 22 5c 74 5c 22 nString += "\t\"
110b0 72 65 66 65 72 65 72 5c 22 3a 20 5c 22 22 20 2b referer\": \"" +
110c0 20 72 65 66 65 72 65 72 20 2b 20 22 5c 22 2c 5c referer + "\",\
110d0 6e 22 3b 20 0d 0a 20 20 20 20 20 20 20 20 6a 73 n"; .. js
110e0 6f 6e 53 74 72 69 6e 67 20 2b 3d 20 22 5c 74 5c onString += "\t\
110f0 22 75 73 65 72 61 67 65 6e 74 5c 22 3a 20 5c 22 "useragent\": \"
11100 22 20 2b 20 75 73 65 72 61 67 65 6e 74 20 2b 20 " + useragent +
11110 22 5c 22 2c 5c 6e 22 3b 20 0d 0a 20 20 20 20 20 "\",\n"; ..
11120 20 20 20 6a 73 6f 6e 53 74 72 69 6e 67 20 2b 3d jsonString +=
11130 20 22 5c 74 5c 22 74 69 6d 65 73 74 61 6d 70 5c "\t\"timestamp\
11140 22 3a 20 5c 22 22 20 2b 20 20 74 68 69 73 2e 64 ": \"" + this.d
11150 66 2e 66 6f 72 6d 61 74 44 61 74 65 28 6c 6f 67 f.formatDate(log
11160 67 69 6e 67 45 76 65 6e 74 2e 73 74 61 72 74 54 gingEvent.startT
11170 69 6d 65 2c 20 22 79 79 79 79 2d 4d 4d 2d 64 64 ime, "yyyy-MM-dd
11180 54 68 68 3a 6d 6d 3a 73 73 5a 22 29 20 2b 20 22 Thh:mm:ssZ") + "
11190 5c 22 2c 5c 6e 22 3b 0d 0a 20 20 20 20 20 20 20 \",\n";..
111a0 20 6a 73 6f 6e 53 74 72 69 6e 67 20 2b 3d 20 22 jsonString += "
111b0 5c 74 5c 22 65 78 63 65 70 74 69 6f 6e 5c 22 3a \t\"exception\":
111c0 20 5c 22 22 20 2b 20 20 6c 6f 67 67 69 6e 67 45 \"" + loggingE
111d0 76 65 6e 74 2e 65 78 63 65 70 74 69 6f 6e 20 2b vent.exception +
111e0 20 22 5c 22 5c 6e 22 3b 20 0d 0a 20 20 20 20 20 "\"\n"; ..
111f0 20 20 20 6a 73 6f 6e 53 74 72 69 6e 67 20 2b 3d jsonString +=
11200 20 22 7d 7d 22 3b 20 20 20 20 20 20 0d 0a 20 20 "}}"; ..
11210 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 20 20 ..
11220 72 65 74 75 72 6e 20 6a 73 6f 6e 53 74 72 69 6e return jsonStrin
11230 67 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 g;.. },..
11240 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 52 65 74 75 /** .. * Retu
11250 72 6e 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 20 rns the content
11260 74 79 70 65 20 6f 75 74 70 75 74 20 62 79 20 74 type output by t
11270 68 69 73 20 6c 61 79 6f 75 74 2e 20 0d 0a 20 20 his layout. ..
11280 20 20 2a 20 40 72 65 74 75 72 6e 20 54 68 65 20 * @return The
11290 62 61 73 65 20 63 6c 61 73 73 20 72 65 74 75 72 base class retur
112a0 6e 73 20 22 74 65 78 74 2f 78 6d 6c 22 2e 0d 0a ns "text/xml"...
112b0 20 20 20 20 2a 20 40 74 79 70 65 20 53 74 72 69 * @type Stri
112c0 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 ng.. */..
112d0 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 65 3a 20 getContentType:
112e0 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 function() {..
112f0 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 74 65 return "te
11300 78 74 2f 6a 73 6f 6e 22 3b 0d 0a 20 20 20 20 7d xt/json";.. }
11310 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 ,.. /** ..
11320 20 2a 20 40 72 65 74 75 72 6e 20 52 65 74 75 72 * @return Retur
11330 6e 73 20 74 68 65 20 68 65 61 64 65 72 20 66 6f ns the header fo
11340 72 20 74 68 65 20 6c 61 79 6f 75 74 20 66 6f 72 r the layout for
11350 6d 61 74 2e 20 54 68 65 20 62 61 73 65 20 63 6c mat. The base cl
11360 61 73 73 20 72 65 74 75 72 6e 73 20 6e 75 6c 6c ass returns null
11370 2e 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 53 ... * @type S
11380 74 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 tring.. */..
11390 20 20 20 67 65 74 48 65 61 64 65 72 3a 20 66 75 getHeader: fu
113a0 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 nction() {..
113b0 20 20 20 20 72 65 74 75 72 6e 20 22 7b 5c 22 4c return "{\"L
113c0 6f 67 34 6a 73 5c 22 3a 20 5b 5c 6e 22 3b 0d 0a og4js\": [\n";..
113d0 20 20 20 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 20 },.. /**
113e0 0d 0a 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 .. * @return
113f0 52 65 74 75 72 6e 73 20 74 68 65 20 66 6f 6f 74 Returns the foot
11400 65 72 20 66 6f 72 20 74 68 65 20 6c 61 79 6f 75 er for the layou
11410 74 20 66 6f 72 6d 61 74 2e 20 54 68 65 20 62 61 t format. The ba
11420 73 65 20 63 6c 61 73 73 20 72 65 74 75 72 6e 73 se class returns
11430 20 6e 75 6c 6c 2e 0d 0a 20 20 20 20 2a 20 40 74 null... * @t
11440 79 70 65 20 53 74 72 69 6e 67 0d 0a 20 20 20 20 ype String..
11450 2a 2f 0d 0a 20 20 20 20 67 65 74 46 6f 6f 74 65 */.. getFoote
11460 72 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d r: function() {.
11470 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
11480 22 5c 6e 5d 7d 22 3b 0d 0a 20 20 20 20 7d 2c 0d "\n]}";.. },.
11490 0a 20 20 20 20 0d 0a 20 20 20 20 67 65 74 53 65 . .. getSe
114a0 70 61 72 61 74 6f 72 3a 20 66 75 6e 63 74 69 6f parator: functio
114b0 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 72 n() {.. r
114c0 65 74 75 72 6e 20 22 2c 5c 6e 22 3b 0d 0a 20 20 eturn ",\n";..
114d0 20 20 7d 0d 0a 7d 29 3b 0d 0a 0d 0a 2f 2a 2a 20 }..});..../**
114e0 0d 0a 2a 20 50 61 74 74 65 72 6e 4c 61 79 6f 75 ..* PatternLayou
114f0 74 20 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 2e 50 t ..*/..Log4js.P
11500 61 74 74 65 72 6e 4c 61 79 6f 75 74 20 3d 20 66 atternLayout = f
11510 75 6e 63 74 69 6f 6e 28 70 61 74 74 65 72 6e 29 unction(pattern)
11520 20 7b 0d 0a 20 20 20 20 69 66 20 28 70 61 74 74 {.. if (patt
11530 65 72 6e 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 ern) {..
11540 74 68 69 73 2e 70 61 74 74 65 72 6e 20 3d 20 70 this.pattern = p
11550 61 74 74 65 72 6e 3b 0d 0a 20 20 20 20 7d 20 65 attern;.. } e
11560 6c 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 lse {.. t
11570 68 69 73 2e 70 61 74 74 65 72 6e 20 3d 20 4c 6f his.pattern = Lo
11580 67 34 6a 73 2e 50 61 74 74 65 72 6e 4c 61 79 6f g4js.PatternLayo
11590 75 74 2e 44 45 46 41 55 4c 54 5f 43 4f 4e 56 45 ut.DEFAULT_CONVE
115a0 52 53 49 4f 4e 5f 50 41 54 54 45 52 4e 3b 0d 0a RSION_PATTERN;..
115b0 20 20 20 20 7d 0d 0a 7d 3b 0d 0a 0d 0a 4c 6f 67 }..};....Log
115c0 34 6a 73 2e 50 61 74 74 65 72 6e 4c 61 79 6f 75 4js.PatternLayou
115d0 74 2e 54 54 43 43 5f 43 4f 4e 56 45 52 53 49 4f t.TTCC_CONVERSIO
115e0 4e 5f 50 41 54 54 45 52 4e 20 3d 20 22 25 72 20 N_PATTERN = "%r
115f0 25 70 20 25 63 20 2d 20 25 6d 25 6e 22 3b 0d 0a %p %c - %m%n";..
11600 4c 6f 67 34 6a 73 2e 50 61 74 74 65 72 6e 4c 61 Log4js.PatternLa
11610 79 6f 75 74 2e 44 45 46 41 55 4c 54 5f 43 4f 4e yout.DEFAULT_CON
11620 56 45 52 53 49 4f 4e 5f 50 41 54 54 45 52 4e 20 VERSION_PATTERN
11630 3d 20 22 25 6d 25 6e 22 3b 0d 0a 4c 6f 67 34 6a = "%m%n";..Log4j
11640 73 2e 50 61 74 74 65 72 6e 4c 61 79 6f 75 74 2e s.PatternLayout.
11650 49 53 4f 38 36 30 31 5f 44 41 54 45 46 4f 52 4d ISO8601_DATEFORM
11660 41 54 20 3d 20 22 79 79 79 79 2d 4d 4d 2d 64 64 AT = "yyyy-MM-dd
11670 20 48 48 3a 6d 6d 3a 73 73 2c 53 53 53 22 3b 0d HH:mm:ss,SSS";.
11680 0a 4c 6f 67 34 6a 73 2e 50 61 74 74 65 72 6e 4c .Log4js.PatternL
11690 61 79 6f 75 74 2e 44 41 54 45 54 49 4d 45 5f 44 ayout.DATETIME_D
116a0 41 54 45 46 4f 52 4d 41 54 20 3d 20 22 64 64 20 ATEFORMAT = "dd
116b0 4d 4d 4d 20 59 59 59 59 20 48 48 3a 6d 6d 3a 73 MMM YYYY HH:mm:s
116c0 73 2c 53 53 53 22 3b 0d 0a 4c 6f 67 34 6a 73 2e s,SSS";..Log4js.
116d0 50 61 74 74 65 72 6e 4c 61 79 6f 75 74 2e 41 42 PatternLayout.AB
116e0 53 4f 4c 55 54 45 54 49 4d 45 5f 44 41 54 45 46 SOLUTETIME_DATEF
116f0 4f 52 4d 41 54 20 3d 20 22 48 48 3a 6d 6d 3a 73 ORMAT = "HH:mm:s
11700 73 2c 53 53 53 22 3b 0d 0a 0d 0a 4c 6f 67 34 6a s,SSS";....Log4j
11710 73 2e 50 61 74 74 65 72 6e 4c 61 79 6f 75 74 2e s.PatternLayout.
11720 70 72 6f 74 6f 74 79 70 65 20 3d 20 4c 6f 67 34 prototype = Log4
11730 6a 73 2e 65 78 74 65 6e 64 28 6e 65 77 20 4c 6f js.extend(new Lo
11740 67 34 6a 73 2e 4c 61 79 6f 75 74 28 29 2c 20 7b g4js.Layout(), {
11750 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 .. /** ..
11760 2a 20 52 65 74 75 72 6e 73 20 74 68 65 20 63 6f * Returns the co
11770 6e 74 65 6e 74 20 74 79 70 65 20 6f 75 74 70 75 ntent type outpu
11780 74 20 62 79 20 74 68 69 73 20 6c 61 79 6f 75 74 t by this layout
11790 2e 20 0d 0a 20 20 20 20 2a 20 40 72 65 74 75 72 . .. * @retur
117a0 6e 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 2e 0d n "text/plain"..
117b0 0a 20 20 20 20 2a 20 40 74 79 70 65 20 53 74 72 . * @type Str
117c0 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 ing.. */..
117d0 20 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 65 3a getContentType:
117e0 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 function() {..
117f0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 74 return "t
11800 65 78 74 2f 70 6c 61 69 6e 22 3b 0d 0a 20 20 20 ext/plain";..
11810 20 7d 2c 0d 0a 20 20 20 20 2f 2a 2a 20 0d 0a 20 },.. /** ..
11820 20 20 20 2a 20 40 72 65 74 75 72 6e 20 52 65 74 * @return Ret
11830 75 72 6e 73 20 74 68 65 20 68 65 61 64 65 72 20 urns the header
11840 66 6f 72 20 74 68 65 20 6c 61 79 6f 75 74 20 66 for the layout f
11850 6f 72 6d 61 74 2e 0d 0a 20 20 20 20 2a 20 40 74 ormat... * @t
11860 79 70 65 20 53 74 72 69 6e 67 0d 0a 20 20 20 20 ype String..
11870 2a 2f 0d 0a 20 20 20 20 67 65 74 48 65 61 64 65 */.. getHeade
11880 72 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d r: function() {.
11890 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
118a0 6e 75 6c 6c 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 null;.. },..
118b0 20 20 20 2f 2a 2a 20 0d 0a 20 20 20 20 2a 20 40 /** .. * @
118c0 72 65 74 75 72 6e 20 52 65 74 75 72 6e 73 20 74 return Returns t
118d0 68 65 20 66 6f 6f 74 65 72 20 66 6f 72 20 74 68 he footer for th
118e0 65 20 6c 61 79 6f 75 74 20 66 6f 72 6d 61 74 2e e layout format.
118f0 0d 0a 20 20 20 20 2a 20 40 74 79 70 65 20 53 74 .. * @type St
11900 72 69 6e 67 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 ring.. */..
11910 20 20 67 65 74 46 6f 6f 74 65 72 3a 20 66 75 6e getFooter: fun
11920 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 ction() {..
11930 20 20 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d return null;.
11940 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 . },.. ..
11950 20 20 20 66 6f 72 6d 61 74 3a 20 66 75 6e 63 74 format: funct
11960 69 6f 6e 28 6c 6f 67 67 69 6e 67 45 76 65 6e 74 ion(loggingEvent
11970 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 ) {.. var
11980 20 72 65 67 65 78 20 3d 20 2f 25 28 2d 3f 5b 30 regex = /%(-?[0
11990 2d 39 5d 2b 29 3f 28 5c 2e 3f 5b 30 2d 39 5d 2b -9]+)?(\.?[0-9]+
119a0 29 3f 28 5b 63 64 6d 6e 70 72 25 5d 29 28 5c 7b )?([cdmnpr%])(\{
119b0 28 5b 5e 5c 7d 5d 2b 29 5c 7d 29 3f 7c 28 5b 5e ([^\}]+)\})?|([^
119c0 25 5d 2b 29 2f 3b 0d 0a 20 20 20 20 20 20 20 20 %]+)/;..
119d0 76 61 72 20 66 6f 72 6d 61 74 74 65 64 53 74 72 var formattedStr
119e0 69 6e 67 20 3d 20 22 22 3b 0d 0a 20 20 20 20 20 ing = "";..
119f0 20 20 20 76 61 72 20 72 65 73 75 6c 74 3b 0d 0a var result;..
11a00 20 20 20 20 20 20 20 20 76 61 72 20 73 65 61 72 var sear
11a10 63 68 53 74 72 69 6e 67 20 3d 20 74 68 69 73 2e chString = this.
11a20 70 61 74 74 65 72 6e 3b 0d 0a 20 20 20 20 20 20 pattern;..
11a30 20 20 2f 2f 20 43 61 6e 6e 6f 74 20 75 73 65 20 // Cannot use
11a40 72 65 67 65 78 20 67 6c 6f 62 61 6c 20 66 6c 61 regex global fla
11a50 67 20 73 69 6e 63 65 20 69 74 20 64 6f 65 73 6e g since it doesn
11a60 27 74 20 77 6f 72 6b 20 69 6e 20 49 45 35 0d 0a 't work in IE5..
11a70 20 20 20 20 20 20 20 20 77 68 69 6c 65 20 28 28 while ((
11a80 72 65 73 75 6c 74 20 3d 20 72 65 67 65 78 2e 65 result = regex.e
11a90 78 65 63 28 73 65 61 72 63 68 53 74 72 69 6e 67 xec(searchString
11aa0 29 29 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 ))) {..
11ab0 20 20 20 76 61 72 20 6d 61 74 63 68 65 64 53 74 var matchedSt
11ac0 72 69 6e 67 20 3d 20 72 65 73 75 6c 74 5b 30 5d ring = result[0]
11ad0 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 ;.. v
11ae0 61 72 20 70 61 64 64 69 6e 67 20 3d 20 72 65 73 ar padding = res
11af0 75 6c 74 5b 31 5d 3b 0d 0a 20 20 20 20 20 20 20 ult[1];..
11b00 20 20 20 20 20 76 61 72 20 74 72 75 6e 63 61 74 var truncat
11b10 69 6f 6e 20 3d 20 72 65 73 75 6c 74 5b 32 5d 3b ion = result[2];
11b20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 .. va
11b30 72 20 63 6f 6e 76 65 72 73 69 6f 6e 43 68 61 72 r conversionChar
11b40 61 63 74 65 72 20 3d 20 72 65 73 75 6c 74 5b 33 acter = result[3
11b50 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ];..
11b60 76 61 72 20 73 70 65 63 69 66 69 65 72 20 3d 20 var specifier =
11b70 72 65 73 75 6c 74 5b 35 5d 3b 0d 0a 20 20 20 20 result[5];..
11b80 20 20 20 20 20 20 20 20 76 61 72 20 74 65 78 74 var text
11b90 20 3d 20 72 65 73 75 6c 74 5b 36 5d 3b 0d 0a 0d = result[6];...
11ba0 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 . //
11bb0 43 68 65 63 6b 20 69 66 20 74 68 65 20 70 61 74 Check if the pat
11bc0 74 65 72 6e 20 6d 61 74 63 68 65 64 20 77 61 73 tern matched was
11bd0 20 6a 75 73 74 20 6e 6f 72 6d 61 6c 20 74 65 78 just normal tex
11be0 74 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 0d t.. .
11bf0 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 . if
11c00 28 74 65 78 74 29 20 7b 0d 0a 20 20 20 20 20 20 (text) {..
11c10 20 20 20 20 20 20 20 20 20 20 66 6f 72 6d 61 74 format
11c20 74 65 64 53 74 72 69 6e 67 20 2b 3d 20 22 22 20 tedString += ""
11c30 2b 20 74 65 78 74 3b 0d 0a 20 20 20 20 20 20 20 + text;..
11c40 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 } else {..
11c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f /
11c60 2f 20 43 72 65 61 74 65 20 61 20 72 61 77 20 72 / Create a raw r
11c70 65 70 6c 61 63 65 6d 65 6e 74 20 73 74 72 69 6e eplacement strin
11c80 67 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 63 g based on the c
11c90 6f 6e 76 65 72 73 69 6f 6e 0d 0a 20 20 20 20 20 onversion..
11ca0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 63 68 // ch
11cb0 61 72 61 63 74 65 72 20 61 6e 64 20 73 70 65 63 aracter and spec
11cc0 69 66 69 65 72 0d 0a 20 20 20 20 20 20 20 20 20 ifier..
11cd0 20 20 20 20 20 20 20 76 61 72 20 72 65 70 6c 61 var repla
11ce0 63 65 6d 65 6e 74 20 3d 20 22 22 3b 0d 0a 20 20 cement = "";..
11cf0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a ..
11d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11d10 73 77 69 74 63 68 28 63 6f 6e 76 65 72 73 69 6f switch(conversio
11d20 6e 43 68 61 72 61 63 74 65 72 29 20 7b 0d 0a 20 nCharacter) {..
11d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11d40 20 20 20 63 61 73 65 20 22 63 22 3a 0d 0a 20 20 case "c":..
11d50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11d60 20 20 20 20 20 20 76 61 72 20 6c 6f 67 67 65 72 var logger
11d70 4e 61 6d 65 20 3d 20 6c 6f 67 67 69 6e 67 45 76 Name = loggingEv
11d80 65 6e 74 2e 63 61 74 65 67 6f 72 79 4e 61 6d 65 ent.categoryName
11d90 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
11da0 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 73 if (s
11db0 70 65 63 69 66 69 65 72 29 20 7b 0d 0a 20 20 20 pecifier) {..
11dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11dd0 20 20 20 20 20 20 20 20 20 76 61 72 20 70 72 65 var pre
11de0 63 69 73 69 6f 6e 20 3d 20 70 61 72 73 65 49 6e cision = parseIn
11df0 74 28 73 70 65 63 69 66 69 65 72 2c 20 31 30 29 t(specifier, 10)
11e00 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
11e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
11e20 61 72 20 6c 6f 67 67 65 72 4e 61 6d 65 42 69 74 ar loggerNameBit
11e30 73 20 3d 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 s = loggingEvent
11e40 2e 63 61 74 65 67 6f 72 79 4e 61 6d 65 2e 73 70 .categoryName.sp
11e50 6c 69 74 28 22 2e 22 29 3b 0d 0a 20 20 20 20 20 lit(".");..
11e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11e70 20 20 20 20 20 20 20 69 66 20 28 70 72 65 63 69 if (preci
11e80 73 69 6f 6e 20 3e 3d 20 6c 6f 67 67 65 72 4e 61 sion >= loggerNa
11e90 6d 65 42 69 74 73 2e 6c 65 6e 67 74 68 29 20 7b meBits.length) {
11ea0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
11eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11ec0 20 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 3d 20 replacement =
11ed0 6c 6f 67 67 65 72 4e 61 6d 65 3b 0d 0a 20 20 20 loggerName;..
11ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11ef0 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 } else
11f00 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
11f10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11f20 20 20 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 3d replacement =
11f30 20 6c 6f 67 67 65 72 4e 61 6d 65 42 69 74 73 2e loggerNameBits.
11f40 73 6c 69 63 65 28 6c 6f 67 67 65 72 4e 61 6d 65 slice(loggerName
11f50 42 69 74 73 2e 6c 65 6e 67 74 68 20 2d 20 70 72 Bits.length - pr
11f60 65 63 69 73 69 6f 6e 29 2e 6a 6f 69 6e 28 22 2e ecision).join(".
11f70 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ");..
11f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11f90 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 }..
11fa0 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c } el
11fb0 73 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 se {..
11fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
11fd0 20 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 3d 20 replacement =
11fe0 6c 6f 67 67 65 72 4e 61 6d 65 3b 0d 0a 20 20 20 loggerName;..
11ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12000 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 }..
12010 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12020 62 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 break;..
12030 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 case
12040 20 22 64 22 3a 0d 0a 20 20 20 20 20 20 20 20 20 "d":..
12050 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 v
12060 61 72 20 64 61 74 65 46 6f 72 6d 61 74 20 3d 20 ar dateFormat =
12070 4c 6f 67 34 6a 73 2e 50 61 74 74 65 72 6e 4c 61 Log4js.PatternLa
12080 79 6f 75 74 2e 49 53 4f 38 36 30 31 5f 44 41 54 yout.ISO8601_DAT
12090 45 46 4f 52 4d 41 54 3b 0d 0a 20 20 20 20 20 20 EFORMAT;..
120a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
120b0 20 20 69 66 20 28 73 70 65 63 69 66 69 65 72 29 if (specifier)
120c0 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
120d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
120e0 64 61 74 65 46 6f 72 6d 61 74 20 3d 20 73 70 65 dateFormat = spe
120f0 63 69 66 69 65 72 3b 0d 0a 20 20 20 20 20 20 20 cifier;..
12100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12110 20 20 20 20 20 2f 2f 20 50 69 63 6b 20 75 70 20 // Pick up
12120 73 70 65 63 69 61 6c 20 63 61 73 65 73 0d 0a 20 special cases..
12130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12140 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 64 if (d
12150 61 74 65 46 6f 72 6d 61 74 20 3d 3d 20 22 49 53 ateFormat == "IS
12160 4f 38 36 30 31 22 29 20 7b 0d 0a 20 20 20 20 20 O8601") {..
12170 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12180 20 20 20 20 20 20 20 20 20 20 20 64 61 74 65 46 dateF
12190 6f 72 6d 61 74 20 3d 20 4c 6f 67 34 6a 73 2e 50 ormat = Log4js.P
121a0 61 74 74 65 72 6e 4c 61 79 6f 75 74 2e 49 53 4f atternLayout.ISO
121b0 38 36 30 31 5f 44 41 54 45 46 4f 52 4d 41 54 3b 8601_DATEFORMAT;
121c0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
121d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 }
121e0 65 6c 73 65 20 69 66 20 28 64 61 74 65 46 6f 72 else if (dateFor
121f0 6d 61 74 20 3d 3d 20 22 41 42 53 4f 4c 55 54 45 mat == "ABSOLUTE
12200 22 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 ") {..
12210 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12220 20 20 20 20 20 20 64 61 74 65 46 6f 72 6d 61 74 dateFormat
12230 20 3d 20 4c 6f 67 34 6a 73 2e 50 61 74 74 65 72 = Log4js.Patter
12240 6e 4c 61 79 6f 75 74 2e 41 42 53 4f 4c 55 54 45 nLayout.ABSOLUTE
12250 54 49 4d 45 5f 44 41 54 45 46 4f 52 4d 41 54 3b TIME_DATEFORMAT;
12260 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
12270 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 }
12280 65 6c 73 65 20 69 66 20 28 64 61 74 65 46 6f 72 else if (dateFor
12290 6d 61 74 20 3d 3d 20 22 44 41 54 45 22 29 20 7b mat == "DATE") {
122a0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
122b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
122c0 20 20 64 61 74 65 46 6f 72 6d 61 74 20 3d 20 4c dateFormat = L
122d0 6f 67 34 6a 73 2e 50 61 74 74 65 72 6e 4c 61 79 og4js.PatternLay
122e0 6f 75 74 2e 44 41 54 45 54 49 4d 45 5f 44 41 54 out.DATETIME_DAT
122f0 45 46 4f 52 4d 41 54 3b 0d 0a 20 20 20 20 20 20 EFORMAT;..
12300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12310 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
12320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12330 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 }..
12340 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 46 // F
12350 6f 72 6d 61 74 20 74 68 65 20 64 61 74 65 0d 0a ormat the date..
12360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12370 20 20 20 20 20 20 20 20 72 65 70 6c 61 63 65 6d replacem
12380 65 6e 74 20 3d 20 28 6e 65 77 20 4c 6f 67 34 6a ent = (new Log4j
12390 73 2e 53 69 6d 70 6c 65 44 61 74 65 46 6f 72 6d s.SimpleDateForm
123a0 61 74 28 64 61 74 65 46 6f 72 6d 61 74 29 29 2e at(dateFormat)).
123b0 66 6f 72 6d 61 74 28 6c 6f 67 67 69 6e 67 45 76 format(loggingEv
123c0 65 6e 74 2e 73 74 61 72 74 54 69 6d 65 29 3b 0d ent.startTime);.
123d0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
123e0 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d break;.
123f0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
12400 20 20 20 20 20 63 61 73 65 20 22 6d 22 3a 0d 0a case "m":..
12410 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12420 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 ..
12430 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12440 20 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 3d 20 replacement =
12450 74 68 69 73 2e 66 6f 72 6d 61 74 4f 62 6a 65 63 this.formatObjec
12460 74 45 78 70 61 6e 73 69 6f 6e 28 6c 6f 67 67 69 tExpansion(loggi
12470 6e 67 45 76 65 6e 74 2e 6d 65 73 73 61 67 65 2c ngEvent.message,
12480 20 31 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 1);..
12490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 br
124a0 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 eak;..
124b0 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 22 case "
124c0 6e 22 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 n":..
124d0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 70 rep
124e0 6c 61 63 65 6d 65 6e 74 20 3d 20 22 5c 6e 22 3b lacement = "\n";
124f0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
12500 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b 3b break;
12510 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
12520 20 20 20 20 20 20 63 61 73 65 20 22 70 22 3a 0d case "p":.
12530 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
12540 20 20 20 20 20 20 20 20 20 72 65 70 6c 61 63 65 replace
12550 6d 65 6e 74 20 3d 20 6c 6f 67 67 69 6e 67 45 76 ment = loggingEv
12560 65 6e 74 2e 6c 65 76 65 6c 2e 74 6f 53 74 72 69 ent.level.toStri
12570 6e 67 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 ng();..
12580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 b
12590 72 65 61 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 reak;..
125a0 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 case
125b0 22 72 22 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 "r":..
125c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 re
125d0 70 6c 61 63 65 6d 65 6e 74 20 3d 20 22 22 20 2b placement = "" +
125e0 20 6c 6f 67 67 69 6e 67 45 76 65 6e 74 2e 73 74 loggingEvent.st
125f0 61 72 74 54 69 6d 65 2e 74 6f 4c 6f 63 61 6c 65 artTime.toLocale
12600 54 69 6d 65 53 74 72 69 6e 67 28 29 3b 20 2f 2f TimeString(); //
12610 54 4f 44 4f 3a 20 2e 67 65 74 44 69 66 66 65 72 TODO: .getDiffer
12620 65 6e 63 65 28 4c 6f 67 34 6a 73 2e 61 70 70 6c ence(Log4js.appl
12630 69 63 61 74 69 6f 6e 53 74 61 72 74 44 61 74 65 icationStartDate
12640 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 );..
12650 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 brea
12660 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 k;..
12670 20 20 20 20 20 20 20 20 63 61 73 65 20 22 25 22 case "%"
12680 3a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 :..
12690 20 20 20 20 20 20 20 20 20 20 20 72 65 70 6c 61 repla
126a0 63 65 6d 65 6e 74 20 3d 20 22 25 22 3b 0d 0a 20 cement = "%";..
126b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
126c0 20 20 20 20 20 20 20 62 72 65 61 6b 3b 0d 0a 20 break;..
126d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
126e0 20 20 20 64 65 66 61 75 6c 74 3a 0d 0a 20 20 20 default:..
126f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12700 20 20 20 20 20 72 65 70 6c 61 63 65 6d 65 6e 74 replacement
12710 20 3d 20 6d 61 74 63 68 65 64 53 74 72 69 6e 67 = matchedString
12720 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
12730 20 20 20 20 20 20 20 20 20 20 20 62 72 65 61 6b break
12740 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
12750 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 }..
12760 20 20 20 20 20 20 2f 2f 20 46 6f 72 6d 61 74 20 // Format
12770 74 68 65 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 the replacement
12780 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 61 6e 79 according to any
12790 20 70 61 64 64 69 6e 67 20 6f 72 0d 0a 20 20 20 padding or..
127a0 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 //
127b0 74 72 75 6e 63 61 74 69 6f 6e 20 73 70 65 63 69 truncation speci
127c0 66 69 65 64 0d 0a 0d 0a 20 20 20 20 20 20 20 20 fied....
127d0 20 20 20 20 20 20 20 20 76 61 72 20 6c 65 6e 3b var len;
127e0 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....
127f0 20 20 20 20 2f 2f 20 46 69 72 73 74 2c 20 74 72 // First, tr
12800 75 6e 63 61 74 69 6f 6e 0d 0a 20 20 20 20 20 20 uncation..
12810 20 20 20 20 20 20 20 20 20 20 69 66 20 28 74 72 if (tr
12820 75 6e 63 61 74 69 6f 6e 29 20 7b 0d 0a 20 20 20 uncation) {..
12830 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12840 20 6c 65 6e 20 3d 20 70 61 72 73 65 49 6e 74 28 len = parseInt(
12850 74 72 75 6e 63 61 74 69 6f 6e 2e 73 75 62 73 74 truncation.subst
12860 72 28 31 29 2c 20 31 30 29 3b 0d 0a 20 20 20 20 r(1), 10);..
12870 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12880 72 65 70 6c 61 63 65 6d 65 6e 74 20 3d 20 72 65 replacement = re
12890 70 6c 61 63 65 6d 65 6e 74 2e 73 75 62 73 74 72 placement.substr
128a0 69 6e 67 28 30 2c 20 6c 65 6e 29 3b 0d 0a 20 20 ing(0, len);..
128b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d }.
128c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
128d0 20 2f 2f 20 4e 65 78 74 2c 20 70 61 64 64 69 6e // Next, paddin
128e0 67 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 g..
128f0 20 20 20 69 66 20 28 70 61 64 64 69 6e 67 29 20 if (padding)
12900 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
12910 20 20 20 20 20 20 20 69 66 20 28 70 61 64 64 69 if (paddi
12920 6e 67 2e 63 68 61 72 41 74 28 30 29 20 3d 3d 20 ng.charAt(0) ==
12930 22 2d 22 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 "-") {..
12940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12950 6c 65 6e 20 3d 20 70 61 72 73 65 49 6e 74 28 70 len = parseInt(p
12960 61 64 64 69 6e 67 2e 73 75 62 73 74 72 28 31 29 adding.substr(1)
12970 2c 20 31 30 29 3b 0d 0a 20 20 20 20 20 20 20 20 , 10);..
12980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12990 2f 2f 20 52 69 67 68 74 20 70 61 64 20 77 69 74 // Right pad wit
129a0 68 20 73 70 61 63 65 73 0d 0a 20 20 20 20 20 20 h spaces..
129b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
129c0 20 20 77 68 69 6c 65 20 28 72 65 70 6c 61 63 65 while (replace
129d0 6d 65 6e 74 2e 6c 65 6e 67 74 68 20 3c 20 6c 65 ment.length < le
129e0 6e 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 n) {..
129f0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12a00 20 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 2b 3d replacement +=
12a10 20 22 20 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 " ";..
12a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
12a30 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
12a40 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a } else {..
12a50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12a60 20 20 20 20 20 20 20 20 6c 65 6e 20 3d 20 70 61 len = pa
12a70 72 73 65 49 6e 74 28 70 61 64 64 69 6e 67 2c 20 rseInt(padding,
12a80 31 30 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 10);..
12a90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f //
12aa0 20 4c 65 66 74 20 70 61 64 20 77 69 74 68 20 73 Left pad with s
12ab0 70 61 63 65 73 0d 0a 20 20 20 20 20 20 20 20 20 paces..
12ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 w
12ad0 68 69 6c 65 20 28 72 65 70 6c 61 63 65 6d 65 6e hile (replacemen
12ae0 74 2e 6c 65 6e 67 74 68 20 3c 20 6c 65 6e 29 20 t.length < len)
12af0 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
12b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 r
12b10 65 70 6c 61 63 65 6d 65 6e 74 20 3d 20 22 20 22 eplacement = " "
12b20 20 2b 20 72 65 70 6c 61 63 65 6d 65 6e 74 3b 0d + replacement;.
12b30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
12b40 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 }..
12b50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12b60 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 }..
12b70 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 }..
12b80 20 20 20 20 20 20 66 6f 72 6d 61 74 74 65 64 53 formattedS
12b90 74 72 69 6e 67 20 2b 3d 20 72 65 70 6c 61 63 65 tring += replace
12ba0 6d 65 6e 74 3b 0d 0a 20 20 20 20 20 20 20 20 20 ment;..
12bb0 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 }..
12bc0 20 20 73 65 61 72 63 68 53 74 72 69 6e 67 20 3d searchString =
12bd0 20 73 65 61 72 63 68 53 74 72 69 6e 67 2e 73 75 searchString.su
12be0 62 73 74 72 28 72 65 73 75 6c 74 2e 69 6e 64 65 bstr(result.inde
12bf0 78 20 2b 20 72 65 73 75 6c 74 5b 30 5d 2e 6c 65 x + result[0].le
12c00 6e 67 74 68 29 3b 0d 0a 20 20 20 20 20 20 20 20 ngth);..
12c10 7d 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 }.. retur
12c20 6e 20 66 6f 72 6d 61 74 74 65 64 53 74 72 69 6e n formattedStrin
12c30 67 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 g;.. },..
12c40 0d 0a 20 20 20 20 66 6f 72 6d 61 74 4f 62 6a 65 .. formatObje
12c50 63 74 45 78 70 61 6e 73 69 6f 6e 20 3a 20 66 75 ctExpansion : fu
12c60 6e 63 74 69 6f 6e 20 28 6f 62 6a 2c 20 64 65 70 nction (obj, dep
12c70 74 68 2c 20 69 6e 64 65 6e 74 61 74 69 6f 6e 29 th, indentation)
12c80 20 7b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 {.. var
12c90 6f 62 6a 65 63 74 73 45 78 70 61 6e 64 65 64 20 objectsExpanded
12ca0 3d 20 5b 5d 3b 0d 0a 0d 0a 20 20 20 20 20 20 20 = [];....
12cb0 20 66 75 6e 63 74 69 6f 6e 20 64 6f 46 6f 72 6d function doForm
12cc0 61 74 28 6f 62 6a 2c 20 64 65 70 74 68 2c 20 69 at(obj, depth, i
12cd0 6e 64 65 6e 74 61 74 69 6f 6e 29 20 7b 0d 0a 20 ndentation) {..
12ce0 20 20 20 20 20 20 20 20 20 20 20 76 61 72 20 69 var i
12cf0 2c 20 6a 2c 20 6c 65 6e 2c 20 63 68 69 6c 64 44 , j, len, childD
12d00 65 70 74 68 2c 20 63 68 69 6c 64 49 6e 64 65 6e epth, childInden
12d10 74 61 74 69 6f 6e 2c 20 63 68 69 6c 64 4c 69 6e tation, childLin
12d20 65 73 2c 20 65 78 70 61 6e 73 69 6f 6e 2c 0d 0a es, expansion,..
12d30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12d40 63 68 69 6c 64 45 78 70 61 6e 73 69 6f 6e 3b 0d childExpansion;.
12d50 0a 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 . var
12d60 20 6e 65 77 4c 69 6e 65 20 3d 20 27 5c 72 5c 6e newLine = '\r\n
12d70 27 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ';..
12d80 69 66 20 28 21 69 6e 64 65 6e 74 61 74 69 6f 6e if (!indentation
12d90 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ) {..
12da0 20 20 20 20 20 69 6e 64 65 6e 74 61 74 69 6f 6e indentation
12db0 20 3d 20 22 22 3b 0d 0a 20 20 20 20 20 20 20 20 = "";..
12dc0 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 }..
12dd0 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ..
12de0 20 66 75 6e 63 74 69 6f 6e 20 74 6f 53 74 72 28 function toStr(
12df0 6f 62 6a 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 obj) {..
12e00 20 20 20 20 20 20 20 20 76 61 72 20 76 61 6c 75 var valu
12e10 65 20 3d 20 27 27 0d 0a 20 20 20 20 20 20 20 20 e = ''..
12e20 20 20 20 20 20 20 20 20 74 72 79 20 7b 0d 0a 20 try {..
12e30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12e40 20 20 20 69 66 20 28 6f 62 6a 20 26 26 20 6f 62 if (obj && ob
12e50 6a 2e 74 6f 53 74 72 69 6e 67 29 20 7b 0d 0a 20 j.toString) {..
12e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12e70 20 20 20 20 20 20 20 76 61 6c 75 65 20 3d 20 6f value = o
12e80 62 6a 2e 74 6f 53 74 72 69 6e 67 28 29 3b 0d 0a bj.toString();..
12e90 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12ea0 20 20 20 20 7d 20 65 6c 73 65 20 7b 0d 0a 20 20 } else {..
12eb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12ec0 20 20 20 20 20 20 76 61 6c 75 65 20 3d 20 53 74 value = St
12ed0 72 69 6e 67 28 6f 62 6a 29 3b 0d 0a 20 20 20 20 ring(obj);..
12ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12ef0 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 }..
12f00 20 20 20 7d 20 63 61 74 63 68 28 65 78 29 20 7b } catch(ex) {
12f10 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
12f20 20 20 20 20 20 20 74 72 79 20 7b 0d 0a 20 20 20 try {..
12f30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12f40 20 20 20 20 20 76 61 6c 75 65 20 3d 20 74 6f 38 value = to8
12f50 56 61 6c 75 65 28 6f 62 6a 29 2e 74 6f 53 74 72 Value(obj).toStr
12f60 69 6e 67 49 6e 74 65 72 6e 61 6c 28 29 3b 0d 0a ingInternal();..
12f70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12f80 20 20 20 20 7d 20 63 61 74 63 68 28 65 78 32 29 } catch(ex2)
12f90 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
12fa0 20 20 20 20 20 20 20 20 20 20 20 20 0d 0a 20 20 ..
12fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
12fc0 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 }..
12fd0 20 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 ..
12fe0 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 }..
12ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 re
13000 74 75 72 6e 20 76 61 6c 75 65 3b 0d 0a 20 20 20 turn value;..
13010 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 }..
13020 20 20 20 20 20 20 20 20 0d 0a 20 20 20 20 20 20 ..
13030 20 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 20 73 function s
13040 70 6c 69 74 49 6e 74 6f 4c 69 6e 65 73 28 74 65 plitIntoLines(te
13050 78 74 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 xt) {..
13060 20 20 20 20 20 20 20 2f 2f 20 45 6e 73 75 72 65 // Ensure
13070 20 61 6c 6c 20 6c 69 6e 65 20 62 72 65 61 6b 73 all line breaks
13080 20 61 72 65 20 5c 6e 20 6f 6e 6c 79 0d 0a 20 20 are \n only..
13090 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 va
130a0 72 20 74 65 78 74 32 20 3d 20 74 65 78 74 2e 72 r text2 = text.r
130b0 65 70 6c 61 63 65 28 2f 5c 72 5c 6e 2f 67 2c 20 eplace(/\r\n/g,
130c0 22 5c 6e 22 29 2e 72 65 70 6c 61 63 65 28 2f 5c "\n").replace(/\
130d0 72 2f 67 2c 20 22 5c 6e 22 29 3b 0d 0a 20 20 20 r/g, "\n");..
130e0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ret
130f0 75 72 6e 20 74 65 78 74 32 2e 73 70 6c 69 74 28 urn text2.split(
13100 22 5c 6e 22 29 3b 0d 0a 20 20 20 20 20 20 20 20 "\n");..
13110 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 }..
13120 20 20 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ..
13130 20 66 75 6e 63 74 69 6f 6e 20 61 72 72 61 79 5f function array_
13140 63 6f 6e 74 61 69 6e 73 28 61 72 72 2c 20 76 61 contains(arr, va
13150 6c 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 l) {..
13160 20 20 20 20 20 20 66 6f 72 28 76 61 72 20 69 20 for(var i
13170 3d 20 30 2c 20 6c 65 6e 20 3d 20 61 72 72 2e 6c = 0, len = arr.l
13180 65 6e 67 74 68 3b 20 69 20 3c 20 6c 65 6e 3b 20 ength; i < len;
13190 69 2b 2b 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 i++) {..
131a0 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 if (
131b0 61 72 72 5b 69 5d 20 3d 3d 20 76 61 6c 29 20 7b arr[i] == val) {
131c0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
131d0 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e return
131e0 20 74 72 75 65 3b 0d 0a 20 20 20 20 20 20 20 20 true;..
131f0 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 }..
13200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
13210 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
13220 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0d return false;.
13230 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a . }..
13240 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 75 .. fu
13250 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 53 74 72 nction formatStr
13260 69 6e 67 28 74 65 78 74 29 20 7b 0d 0a 20 20 20 ing(text) {..
13270 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 72 var
13280 20 6c 69 6e 65 73 20 3d 20 73 70 6c 69 74 49 6e lines = splitIn
13290 74 6f 4c 69 6e 65 73 28 74 65 78 74 29 3b 0d 0a toLines(text);..
132a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
132b0 66 6f 72 20 28 76 61 72 20 6a 20 3d 20 31 2c 20 for (var j = 1,
132c0 6a 4c 65 6e 20 3d 20 6c 69 6e 65 73 2e 6c 65 6e jLen = lines.len
132d0 67 74 68 3b 20 6a 20 3c 20 6a 4c 65 6e 3b 20 6a gth; j < jLen; j
132e0 2b 2b 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 ++) {..
132f0 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 73 lines
13300 5b 6a 5d 20 3d 20 69 6e 64 65 6e 74 61 74 69 6f [j] = indentatio
13310 6e 20 2b 20 6c 69 6e 65 73 5b 6a 5d 3b 0d 0a 20 n + lines[j];..
13320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d }
13330 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
13340 20 20 72 65 74 75 72 6e 20 6c 69 6e 65 73 2e 6a return lines.j
13350 6f 69 6e 28 6e 65 77 4c 69 6e 65 29 3b 0d 0a 20 oin(newLine);..
13360 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 0d 0a }....
13370 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 // R
13380 65 74 75 72 6e 73 20 61 20 6e 69 63 65 6c 79 20 eturns a nicely
13390 66 6f 72 6d 61 74 74 65 64 20 72 65 70 72 65 73 formatted repres
133a0 65 6e 74 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 entation of an e
133b0 72 72 6f 72 0d 0a 20 20 20 20 20 20 20 20 20 20 rror..
133c0 20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 function getEx
133d0 63 65 70 74 69 6f 6e 53 74 72 69 6e 67 52 65 70 ceptionStringRep
133e0 28 65 78 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 (ex) {..
133f0 20 20 20 20 20 20 20 20 69 66 20 28 65 78 29 20 if (ex)
13400 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 {..
13410 20 20 20 20 20 20 20 76 61 72 20 65 78 53 74 72 var exStr
13420 20 3d 20 22 45 78 63 65 70 74 69 6f 6e 3a 20 22 = "Exception: "
13430 20 2b 20 67 65 74 45 78 63 65 70 74 69 6f 6e 4d + getExceptionM
13440 65 73 73 61 67 65 28 65 78 29 3b 0d 0a 20 20 20 essage(ex);..
13450 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13460 20 74 72 79 20 7b 0d 0a 20 20 20 20 20 20 20 20 try {..
13470 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13480 69 66 20 28 65 78 2e 6c 69 6e 65 4e 75 6d 62 65 if (ex.lineNumbe
13490 72 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 r) {..
134a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
134b0 20 20 65 78 53 74 72 20 2b 3d 20 22 20 6f 6e 20 exStr += " on
134c0 6c 69 6e 65 20 6e 75 6d 62 65 72 20 22 20 2b 20 line number " +
134d0 65 78 2e 6c 69 6e 65 4e 75 6d 62 65 72 3b 0d 0a ex.lineNumber;..
134e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
134f0 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 }..
13500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13510 20 20 20 69 66 20 28 65 78 2e 66 69 6c 65 4e 61 if (ex.fileNa
13520 6d 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 me) {..
13530 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13540 20 20 20 65 78 53 74 72 20 2b 3d 20 22 20 69 6e exStr += " in
13550 20 66 69 6c 65 20 22 20 2b 20 65 78 2e 66 69 6c file " + ex.fil
13560 65 4e 61 6d 65 3b 0d 0a 20 20 20 20 20 20 20 20 eName;..
13570 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13580 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 }..
13590 20 20 20 20 20 20 20 7d 20 63 61 74 63 68 20 28 } catch (
135a0 6c 6f 63 61 6c 45 78 29 20 7b 0d 0a 20 20 20 20 localEx) {..
135b0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
135c0 20 20 20 20 6c 6f 67 4c 6f 67 2e 77 61 72 6e 28 logLog.warn(
135d0 22 55 6e 61 62 6c 65 20 74 6f 20 6f 62 74 61 69 "Unable to obtai
135e0 6e 20 66 69 6c 65 20 61 6e 64 20 6c 69 6e 65 20 n file and line
135f0 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 information for
13600 65 72 72 6f 72 22 29 3b 0d 0a 20 20 20 20 20 20 error");..
13610 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d }.
13620 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13630 20 20 20 20 20 2f 2f 69 66 20 28 73 68 6f 77 53 //if (showS
13640 74 61 63 6b 54 72 61 63 65 73 20 26 26 20 65 78 tackTraces && ex
13650 2e 73 74 61 63 6b 29 20 7b 0d 0a 20 20 20 20 20 .stack) {..
13660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 e
13670 78 53 74 72 20 2b 3d 20 6e 65 77 4c 69 6e 65 20 xStr += newLine
13680 2b 20 22 53 74 61 63 6b 20 74 72 61 63 65 3a 22 + "Stack trace:"
13690 20 2b 20 6e 65 77 4c 69 6e 65 2b 20 65 78 2e 73 + newLine+ ex.s
136a0 74 61 63 6b 3b 0d 0a 20 20 20 20 20 20 20 20 20 tack;..
136b0 20 20 20 20 20 20 20 20 20 20 20 2f 2f 7d 0d 0a //}..
136c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
136d0 20 20 20 20 72 65 74 75 72 6e 20 65 78 53 74 72 return exStr
136e0 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
136f0 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 20 }..
13700 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 75 6c return nul
13710 6c 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 l;..
13720 7d 0d 0a 0d 0a 20 20 20 20 20 20 20 20 20 20 20 }....
13730 20 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 .. i
13740 66 20 28 6f 62 6a 20 3d 3d 3d 20 6e 75 6c 6c 29 f (obj === null)
13750 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
13760 20 20 20 20 72 65 74 75 72 6e 20 22 6e 75 6c 6c return "null
13770 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ";..
13780 7d 20 65 6c 73 65 20 69 66 20 28 74 79 70 65 6f } else if (typeo
13790 66 20 6f 62 6a 20 3d 3d 20 22 75 6e 64 65 66 69 f obj == "undefi
137a0 6e 65 64 22 29 20 7b 0d 0a 20 20 20 20 20 20 20 ned") {..
137b0 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 return
137c0 22 75 6e 64 65 66 69 6e 65 64 22 3b 0d 0a 20 20 "undefined";..
137d0 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 } else
137e0 20 69 66 20 28 74 79 70 65 6f 66 20 6f 62 6a 20 if (typeof obj
137f0 3d 3d 20 22 73 74 72 69 6e 67 22 29 20 7b 0d 0a == "string") {..
13800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13810 72 65 74 75 72 6e 20 66 6f 72 6d 61 74 53 74 72 return formatStr
13820 69 6e 67 28 6f 62 6a 29 3b 0d 0a 20 20 20 20 20 ing(obj);..
13830 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 } else if
13840 20 28 74 79 70 65 6f 66 20 6f 62 6a 20 3d 3d 20 (typeof obj ==
13850 22 6f 62 6a 65 63 74 22 20 26 26 20 61 72 72 61 "object" && arra
13860 79 5f 63 6f 6e 74 61 69 6e 73 28 6f 62 6a 65 63 y_contains(objec
13870 74 73 45 78 70 61 6e 64 65 64 2c 20 6f 62 6a 29 tsExpanded, obj)
13880 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ) {..
13890 20 20 20 20 20 74 72 79 20 7b 0d 0a 20 20 20 20 try {..
138a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
138b0 65 78 70 61 6e 73 69 6f 6e 20 3d 20 74 6f 53 74 expansion = toSt
138c0 72 28 6f 62 6a 29 3b 0d 0a 20 20 20 20 20 20 20 r(obj);..
138d0 20 20 20 20 20 20 20 20 20 7d 20 63 61 74 63 68 } catch
138e0 20 28 65 78 29 20 7b 0d 0a 20 20 20 20 20 20 20 (ex) {..
138f0 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 exp
13900 61 6e 73 69 6f 6e 20 3d 20 22 45 72 72 6f 72 20 ansion = "Error
13910 66 6f 72 6d 61 74 74 69 6e 67 20 70 72 6f 70 65 formatting prope
13920 72 74 79 2e 20 44 65 74 61 69 6c 73 3a 20 22 20 rty. Details: "
13930 2b 20 67 65 74 45 78 63 65 70 74 69 6f 6e 53 74 + getExceptionSt
13940 72 69 6e 67 52 65 70 28 65 78 29 3b 0d 0a 20 20 ringRep(ex);..
13950 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d }.
13960 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13970 20 72 65 74 75 72 6e 20 65 78 70 61 6e 73 69 6f return expansio
13980 6e 20 2b 20 22 20 5b 61 6c 72 65 61 64 79 20 65 n + " [already e
13990 78 70 61 6e 64 65 64 5d 22 3b 0d 0a 20 20 20 20 xpanded]";..
139a0 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 } else i
139b0 66 20 28 28 6f 62 6a 20 69 6e 73 74 61 6e 63 65 f ((obj instance
139c0 6f 66 20 41 72 72 61 79 29 20 26 26 20 64 65 70 of Array) && dep
139d0 74 68 20 3e 20 30 29 20 7b 0d 0a 20 20 20 20 20 th > 0) {..
139e0 20 20 20 20 20 20 20 20 20 20 20 6f 62 6a 65 63 objec
139f0 74 73 45 78 70 61 6e 64 65 64 2e 70 75 73 68 28 tsExpanded.push(
13a00 6f 62 6a 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 obj);..
13a10 20 20 20 20 20 20 20 65 78 70 61 6e 73 69 6f 6e expansion
13a20 20 3d 20 22 5b 22 20 2b 20 6e 65 77 4c 69 6e 65 = "[" + newLine
13a30 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ;..
13a40 20 20 20 63 68 69 6c 64 44 65 70 74 68 20 3d 20 childDepth =
13a50 64 65 70 74 68 20 2d 20 31 3b 0d 0a 20 20 20 20 depth - 1;..
13a60 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c chil
13a70 64 49 6e 64 65 6e 74 61 74 69 6f 6e 20 3d 20 69 dIndentation = i
13a80 6e 64 65 6e 74 61 74 69 6f 6e 20 2b 20 22 20 20 ndentation + "
13a90 22 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 ";..
13aa0 20 20 20 20 63 68 69 6c 64 4c 69 6e 65 73 20 3d childLines =
13ab0 20 5b 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 [];..
13ac0 20 20 20 20 20 20 66 6f 72 20 28 69 20 3d 20 30 for (i = 0
13ad0 2c 20 6c 65 6e 20 3d 20 6f 62 6a 2e 6c 65 6e 67 , len = obj.leng
13ae0 74 68 3b 20 69 20 3c 20 6c 65 6e 3b 20 69 2b 2b th; i < len; i++
13af0 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ) {..
13b00 20 20 20 20 20 20 20 20 20 74 72 79 20 7b 0d 0a try {..
13b10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13b20 20 20 20 20 20 20 20 20 63 68 69 6c 64 45 78 70 childExp
13b30 61 6e 73 69 6f 6e 20 3d 20 64 6f 46 6f 72 6d 61 ansion = doForma
13b40 74 28 6f 62 6a 5b 69 5d 2c 20 63 68 69 6c 64 44 t(obj[i], childD
13b50 65 70 74 68 2c 20 63 68 69 6c 64 49 6e 64 65 6e epth, childInden
13b60 74 61 74 69 6f 6e 29 3b 0d 0a 20 20 20 20 20 20 tation);..
13b70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13b80 20 20 63 68 69 6c 64 4c 69 6e 65 73 2e 70 75 73 childLines.pus
13b90 68 28 63 68 69 6c 64 49 6e 64 65 6e 74 61 74 69 h(childIndentati
13ba0 6f 6e 20 2b 20 63 68 69 6c 64 45 78 70 61 6e 73 on + childExpans
13bb0 69 6f 6e 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 ion);..
13bc0 20 20 20 20 20 20 20 20 20 20 20 7d 20 63 61 74 } cat
13bd0 63 68 20 28 65 78 29 20 7b 0d 0a 20 20 20 20 20 ch (ex) {..
13be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13bf0 20 20 20 63 68 69 6c 64 4c 69 6e 65 73 2e 70 75 childLines.pu
13c00 73 68 28 63 68 69 6c 64 49 6e 64 65 6e 74 61 74 sh(childIndentat
13c10 69 6f 6e 20 2b 20 22 45 72 72 6f 72 20 66 6f 72 ion + "Error for
13c20 6d 61 74 74 69 6e 67 20 61 72 72 61 79 20 6d 65 matting array me
13c30 6d 62 65 72 2e 20 44 65 74 61 69 6c 73 3a 20 22 mber. Details: "
13c40 20 2b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 +..
13c50 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13c60 67 65 74 45 78 63 65 70 74 69 6f 6e 53 74 72 69 getExceptionStri
13c70 6e 67 52 65 70 28 65 78 29 20 2b 20 22 22 29 3b ngRep(ex) + "");
13c80 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
13c90 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
13ca0 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 }..
13cb0 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 61 expa
13cc0 6e 73 69 6f 6e 20 2b 3d 20 63 68 69 6c 64 4c 69 nsion += childLi
13cd0 6e 65 73 2e 6a 6f 69 6e 28 22 2c 22 20 2b 20 6e nes.join("," + n
13ce0 65 77 4c 69 6e 65 29 20 2b 20 6e 65 77 4c 69 6e ewLine) + newLin
13cf0 65 20 2b 20 69 6e 64 65 6e 74 61 74 69 6f 6e 20 e + indentation
13d00 2b 20 22 5d 22 3b 0d 0a 20 20 20 20 20 20 20 20 + "]";..
13d10 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 65 return e
13d20 78 70 61 6e 73 69 6f 6e 3b 0d 0a 20 20 20 20 20 xpansion;..
13d30 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 69 66 } else if
13d40 20 28 4f 62 6a 65 63 74 2e 70 72 6f 74 6f 74 79 (Object.prototy
13d50 70 65 2e 74 6f 53 74 72 69 6e 67 2e 63 61 6c 6c pe.toString.call
13d60 28 6f 62 6a 29 20 3d 3d 20 22 5b 6f 62 6a 65 63 (obj) == "[objec
13d70 74 20 44 61 74 65 5d 22 29 20 7b 0d 0a 20 20 20 t Date]") {..
13d80 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 ret
13d90 75 72 6e 20 6f 62 6a 2e 74 6f 53 74 72 69 6e 67 urn obj.toString
13da0 28 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 ();..
13db0 20 7d 20 65 6c 73 65 20 69 66 20 28 74 79 70 65 } else if (type
13dc0 6f 66 20 6f 62 6a 20 3d 3d 20 22 6f 62 6a 65 63 of obj == "objec
13dd0 74 22 20 26 26 20 64 65 70 74 68 20 3e 20 30 29 t" && depth > 0)
13de0 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
13df0 20 20 20 20 6f 62 6a 65 63 74 73 45 78 70 61 6e objectsExpan
13e00 64 65 64 2e 70 75 73 68 28 6f 62 6a 29 3b 0d 0a ded.push(obj);..
13e10 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13e20 65 78 70 61 6e 73 69 6f 6e 20 3d 20 22 7b 22 20 expansion = "{"
13e30 2b 20 6e 65 77 4c 69 6e 65 3b 0d 0a 20 20 20 20 + newLine;..
13e40 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 6c chil
13e50 64 44 65 70 74 68 20 3d 20 64 65 70 74 68 20 2d dDepth = depth -
13e60 20 31 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 1;..
13e70 20 20 20 20 20 63 68 69 6c 64 49 6e 64 65 6e 74 childIndent
13e80 61 74 69 6f 6e 20 3d 20 69 6e 64 65 6e 74 61 74 ation = indentat
13e90 69 6f 6e 20 2b 20 22 20 20 22 3b 0d 0a 20 20 20 ion + " ";..
13ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 69 chi
13eb0 6c 64 4c 69 6e 65 73 20 3d 20 5b 5d 3b 0d 0a 20 ldLines = [];..
13ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 f
13ed0 6f 72 20 28 69 20 69 6e 20 6f 62 6a 29 20 7b 0d or (i in obj) {.
13ee0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .
13ef0 20 20 20 20 20 74 72 79 20 7b 0d 0a 20 20 20 20 try {..
13f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13f10 20 20 20 20 63 68 69 6c 64 45 78 70 61 6e 73 69 childExpansi
13f20 6f 6e 20 3d 20 64 6f 46 6f 72 6d 61 74 28 6f 62 on = doFormat(ob
13f30 6a 5b 69 5d 2c 20 63 68 69 6c 64 44 65 70 74 68 j[i], childDepth
13f40 2c 20 63 68 69 6c 64 49 6e 64 65 6e 74 61 74 69 , childIndentati
13f50 6f 6e 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 on);..
13f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 68 ch
13f70 69 6c 64 4c 69 6e 65 73 2e 70 75 73 68 28 63 68 ildLines.push(ch
13f80 69 6c 64 49 6e 64 65 6e 74 61 74 69 6f 6e 20 2b ildIndentation +
13f90 20 69 20 2b 20 22 3a 20 22 20 2b 20 63 68 69 6c i + ": " + chil
13fa0 64 45 78 70 61 6e 73 69 6f 6e 29 3b 0d 0a 20 20 dExpansion);..
13fb0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
13fc0 20 20 7d 20 63 61 74 63 68 20 28 65 78 29 20 7b } catch (ex) {
13fd0 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..
13fe0 20 20 20 20 20 20 20 20 20 20 63 68 69 6c 64 4c childL
13ff0 69 6e 65 73 2e 70 75 73 68 28 63 68 69 6c 64 49 ines.push(childI
14000 6e 64 65 6e 74 61 74 69 6f 6e 20 2b 20 69 20 2b ndentation + i +
14010 20 22 3a 20 45 72 72 6f 72 20 66 6f 72 6d 61 74 ": Error format
14020 74 69 6e 67 20 70 72 6f 70 65 72 74 79 2e 20 44 ting property. D
14030 65 74 61 69 6c 73 3a 20 22 20 2b 0d 0a 20 20 20 etails: " +..
14040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
14050 20 20 20 20 20 20 20 20 20 67 65 74 45 78 63 65 getExce
14060 70 74 69 6f 6e 53 74 72 69 6e 67 52 65 70 28 65 ptionStringRep(e
14070 78 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 x));..
14080 20 20 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 }..
14090 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0d 0a }..
140a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
140b0 65 78 70 61 6e 73 69 6f 6e 20 2b 3d 20 63 68 69 expansion += chi
140c0 6c 64 4c 69 6e 65 73 2e 6a 6f 69 6e 28 22 2c 22 ldLines.join(","
140d0 20 2b 20 6e 65 77 4c 69 6e 65 29 20 2b 20 6e 65 + newLine) + ne
140e0 77 4c 69 6e 65 20 2b 20 69 6e 64 65 6e 74 61 74 wLine + indentat
140f0 69 6f 6e 20 2b 20 22 7d 22 3b 0d 0a 20 20 20 20 ion + "}";..
14100 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 retu
14110 72 6e 20 65 78 70 61 6e 73 69 6f 6e 3b 0d 0a 20 rn expansion;..
14120 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 } els
14130 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 e {..
14140 20 20 20 20 20 72 65 74 75 72 6e 20 66 6f 72 6d return form
14150 61 74 53 74 72 69 6e 67 28 74 6f 53 74 72 28 6f atString(toStr(o
14160 62 6a 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 20 bj));..
14170 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 7d 0d }.. }.
14180 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 . return
14190 64 6f 46 6f 72 6d 61 74 28 6f 62 6a 2c 20 64 65 doFormat(obj, de
141a0 70 74 68 2c 20 69 6e 64 65 6e 74 61 74 69 6f 6e pth, indentation
141b0 29 3b 0d 0a 20 20 20 20 7d 0d 0a 7d 29 3b 0d 0a );.. }..});..
141c0 0d 0a 2f 2a 2a 0d 0a 2a 20 40 70 72 69 76 61 74 ../**..* @privat
141d0 65 0d 0a 2a 20 40 69 67 6e 6f 72 65 0d 0a 2a 2f e..* @ignore..*/
141e0 0d 0a 69 66 20 28 21 41 72 72 61 79 2e 70 72 6f ..if (!Array.pro
141f0 74 6f 74 79 70 65 2e 70 75 73 68 29 20 7b 0d 0a totype.push) {..
14200 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 46 /**.. * F
14210 75 6e 63 74 69 6f 6e 73 20 74 61 6b 65 6e 20 66 unctions taken f
14220 72 6f 6d 20 50 72 6f 74 6f 74 79 70 65 20 6c 69 rom Prototype li
14230 62 72 61 72 79 2c 20 64 69 64 6e 27 74 20 77 61 brary, didn't wa
14240 6e 74 20 74 6f 20 72 65 71 75 69 72 65 20 66 6f nt to require fo
14250 72 20 6a 75 73 74 20 66 65 77 20 0d 0a 20 20 20 r just few ..
14260 20 2a 20 66 75 6e 63 74 69 6f 6e 73 2e 0d 0a 20 * functions...
14270 20 20 20 2a 20 4d 6f 72 65 20 69 6e 66 6f 20 61 * More info a
14280 74 20 7b 40 6c 69 6e 6b 20 68 74 74 70 3a 2f 2f t {@link http://
14290 0d 0a 20 20 20 20 2a 20 70 72 6f 74 6f 74 79 70 .. * prototyp
142a0 65 2e 63 6f 6e 69 6f 2e 6e 65 74 2f 7d 0d 0a 20 e.conio.net/}..
142b0 20 20 20 2a 20 40 70 72 69 76 61 74 65 0d 0a 20 * @private..
142c0 20 20 20 2a 2f 0d 0a 20 20 20 20 41 72 72 61 79 */.. Array
142d0 2e 70 72 6f 74 6f 74 79 70 65 2e 70 75 73 68 20 .prototype.push
142e0 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a = function() {..
142f0 20 20 20 20 20 20 20 20 76 61 72 20 73 74 61 72 var star
14300 74 4c 65 6e 67 74 68 20 3d 20 74 68 69 73 2e 6c tLength = this.l
14310 65 6e 67 74 68 3b 0d 0a 20 20 20 20 20 20 20 20 ength;..
14320 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b 20 for (var i = 0;
14330 69 20 3c 20 61 72 67 75 6d 65 6e 74 73 2e 6c 65 i < arguments.le
14340 6e 67 74 68 3b 20 69 2b 2b 29 20 7b 0d 0a 20 20 ngth; i++) {..
14350 20 20 20 20 20 20 20 20 20 20 74 68 69 73 5b 73 this[s
14360 74 61 72 74 4c 65 6e 67 74 68 20 2b 20 69 5d 20 tartLength + i]
14370 3d 20 61 72 67 75 6d 65 6e 74 73 5b 69 5d 3b 0d = arguments[i];.
14380 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 . }..
14390 20 20 20 20 72 65 74 75 72 6e 20 74 68 69 73 2e return this.
143a0 6c 65 6e 67 74 68 3b 0d 0a 20 20 20 20 7d 3b 0d length;.. };.
143b0 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 2a 20 46 49 46 .}..../**..* FIF
143c0 4f 20 62 75 66 66 65 72 0d 0a 2a 20 40 70 72 69 O buffer..* @pri
143d0 76 61 74 65 0d 0a 2a 2f 0d 0a 4c 6f 67 34 6a 73 vate..*/..Log4js
143e0 2e 46 69 66 6f 42 75 66 66 65 72 20 3d 20 66 75 .FifoBuffer = fu
143f0 6e 63 74 69 6f 6e 28 29 0d 0a 7b 0d 0a 74 68 69 nction()..{..thi
14400 73 2e 61 72 72 61 79 20 3d 20 6e 65 77 20 41 72 s.array = new Ar
14410 72 61 79 28 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 4c 6f ray();..};....Lo
14420 67 34 6a 73 2e 46 69 66 6f 42 75 66 66 65 72 2e g4js.FifoBuffer.
14430 70 72 6f 74 6f 74 79 70 65 20 3d 20 7b 0d 0a 0d prototype = {...
14440 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 . /**.. *
14450 40 70 61 72 61 6d 20 7b 4f 62 6a 65 63 74 7d 20 @param {Object}
14460 6f 62 6a 20 61 6e 79 20 6f 62 6a 65 63 74 20 61 obj any object a
14470 64 64 65 64 20 74 6f 20 62 75 66 66 65 72 0d 0a dded to buffer..
14480 20 20 20 20 2a 2f 0d 0a 20 20 20 20 70 75 73 68 */.. push
14490 20 3a 20 66 75 6e 63 74 69 6f 6e 28 6f 62 6a 29 : function(obj)
144a0 20 7b 0d 0a 20 20 20 20 20 20 20 20 74 68 69 73 {.. this
144b0 2e 61 72 72 61 79 5b 74 68 69 73 2e 61 72 72 61 .array[this.arra
144c0 79 2e 6c 65 6e 67 74 68 5d 20 3d 20 6f 62 6a 3b y.length] = obj;
144d0 0d 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e .. return
144e0 20 74 68 69 73 2e 61 72 72 61 79 2e 6c 65 6e 67 this.array.leng
144f0 74 68 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 th;.. },..
14500 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 .. /**..
14510 2a 20 40 72 65 74 75 72 6e 20 66 69 72 73 74 20 * @return first
14520 70 75 74 74 65 64 20 69 6e 20 4f 62 6a 65 63 74 putted in Object
14530 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 70 75 .. */.. pu
14540 6c 6c 20 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 ll : function()
14550 7b 0d 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 {.. if (t
14560 68 69 73 2e 61 72 72 61 79 2e 6c 65 6e 67 74 68 his.array.length
14570 20 3e 20 30 29 20 7b 0d 0a 20 20 20 20 20 20 20 > 0) {..
14580 20 20 20 20 20 76 61 72 20 66 69 72 73 74 49 74 var firstIt
14590 65 6d 20 3d 20 74 68 69 73 2e 61 72 72 61 79 5b em = this.array[
145a0 30 5d 3b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 0];..
145b0 20 66 6f 72 20 28 76 61 72 20 69 20 3d 20 30 3b for (var i = 0;
145c0 20 69 20 3c 20 74 68 69 73 2e 61 72 72 61 79 2e i < this.array.
145d0 6c 65 6e 67 74 68 20 2d 20 31 3b 20 69 2b 2b 29 length - 1; i++)
145e0 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 {..
145f0 20 20 20 20 74 68 69 73 2e 61 72 72 61 79 5b 69 this.array[i
14600 5d 20 3d 20 74 68 69 73 2e 61 72 72 61 79 5b 69 ] = this.array[i
14610 20 2b 20 31 5d 3b 0d 0a 20 20 20 20 20 20 20 20 + 1];..
14620 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 20 20 }..
14630 20 20 20 74 68 69 73 2e 61 72 72 61 79 2e 6c 65 this.array.le
14640 6e 67 74 68 20 3d 20 74 68 69 73 2e 61 72 72 61 ngth = this.arra
14650 79 2e 6c 65 6e 67 74 68 20 2d 20 31 3b 0d 0a 20 y.length - 1;..
14660 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 retur
14670 6e 20 66 69 72 73 74 49 74 65 6d 3b 0d 0a 20 20 n firstItem;..
14680 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20 20 }..
14690 20 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0d 0a 20 return null;..
146a0 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 20 20 },.. ..
146b0 20 6c 65 6e 67 74 68 20 3a 20 66 75 6e 63 74 69 length : functi
146c0 6f 6e 28 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 on() {..
146d0 72 65 74 75 72 6e 20 74 68 69 73 2e 61 72 72 61 return this.arra
146e0 79 2e 6c 65 6e 67 74 68 3b 0d 0a 20 20 20 20 7d y.length;.. }
146f0 0d 0a 7d 3b 0d 0a 0d 0a 0d 0a 0d 0a 2f 2a 2a 0d ..};......../**.
14700 0a 2a 20 44 61 74 65 20 46 6f 72 6d 61 74 74 65 .* Date Formatte
14710 72 0d 0a 2a 20 61 64 64 5a 65 72 6f 28 29 20 61 r..* addZero() a
14720 6e 64 20 66 6f 72 6d 61 74 44 61 74 65 28 29 20 nd formatDate()
14730 61 72 65 20 63 6f 75 72 74 65 73 79 20 6f 66 20 are courtesy of
14740 4d 69 6b 65 20 47 6f 6c 64 69 6e 67 3a 0d 0a 2a Mike Golding:..*
14750 20 68 74 74 70 3a 2f 2f 77 77 77 2e 6d 69 6b 65 http://www.mike
14760 7a 69 6c 6c 61 2e 63 6f 6d 2f 65 78 70 30 30 31 zilla.com/exp001
14770 35 2e 68 74 6d 6c 0d 0a 2a 20 40 70 72 69 76 61 5.html..* @priva
14780 74 65 0d 0a 2a 2f 20 0d 0a 4c 6f 67 34 6a 73 2e te..*/ ..Log4js.
14790 44 61 74 65 46 6f 72 6d 61 74 74 65 72 20 3d 20 DateFormatter =
147a0 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a 20 20 function() {..
147b0 20 20 72 65 74 75 72 6e 3b 0d 0a 7d 3b 0d 0a 2f return;..};../
147c0 2a 2a 0d 0a 2a 20 64 65 66 61 75 6c 74 20 66 6f **..* default fo
147d0 72 6d 61 74 20 6f 66 20 64 61 74 65 20 28 49 53 rmat of date (IS
147e0 4f 2d 38 36 30 31 29 0d 0a 2a 20 40 73 74 61 74 O-8601)..* @stat
147f0 69 63 0d 0a 2a 20 40 66 69 6e 61 6c 0d 0a 2a 2f ic..* @final..*/
14800 0d 0a 4c 6f 67 34 6a 73 2e 44 61 74 65 46 6f 72 ..Log4js.DateFor
14810 6d 61 74 74 65 72 2e 44 45 46 41 55 4c 54 5f 44 matter.DEFAULT_D
14820 41 54 45 5f 46 4f 52 4d 41 54 20 3d 20 22 79 79 ATE_FORMAT = "yy
14830 79 79 2d 4d 4d 2d 64 64 54 68 68 3a 6d 6d 3a 73 yy-MM-ddThh:mm:s
14840 73 4f 22 3b 0d 0a 0d 0a 0d 0a 4c 6f 67 34 6a 73 sO";......Log4js
14850 2e 44 61 74 65 46 6f 72 6d 61 74 74 65 72 2e 70 .DateFormatter.p
14860 72 6f 74 6f 74 79 70 65 20 3d 20 7b 0d 0a 20 20 rototype = {..
14870 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 46 6f 72 /**.. * For
14880 6d 61 74 73 20 74 68 65 20 67 69 76 65 6e 20 64 mats the given d
14890 61 74 65 20 62 79 20 74 68 65 20 67 69 76 65 6e ate by the given
148a0 20 70 61 74 74 65 72 6e 2e 3c 62 72 20 2f 3e 0d pattern.<br />.
148b0 0a 20 20 20 20 2a 20 46 6f 6c 6c 6f 77 69 6e 67 . * Following
148c0 20 73 77 69 74 63 68 65 73 20 61 72 65 20 73 75 switches are su
148d0 70 70 6f 72 74 65 64 3a 0d 0a 20 20 20 20 2a 20 pported:.. *
148e0 3c 75 6c 3e 0d 0a 20 20 20 20 2a 20 3c 6c 69 3e <ul>.. * <li>
148f0 79 79 79 79 3a 20 54 68 65 20 79 65 61 72 3c 2f yyyy: The year</
14900 6c 69 3e 0d 0a 20 20 20 20 2a 20 3c 6c 69 3e 4d li>.. * <li>M
14910 4d 3a 20 74 68 65 20 6d 6f 6e 74 68 3c 2f 6c 69 M: the month</li
14920 3e 0d 0a 20 20 20 20 2a 20 3c 6c 69 3e 64 64 3a >.. * <li>dd:
14930 20 74 68 65 20 64 61 79 20 6f 66 20 6d 6f 6e 74 the day of mont
14940 68 3c 6c 69 3e 0d 0a 20 20 20 20 2a 20 3c 6c 69 h<li>.. * <li
14950 3e 68 68 3a 20 74 68 65 20 68 6f 75 72 3c 6c 69 >hh: the hour<li
14960 3e 0d 0a 20 20 20 20 2a 20 3c 6c 69 3e 6d 6d 3a >.. * <li>mm:
14970 20 6d 69 6e 75 74 65 73 3c 2f 6c 69 3e 0d 0a 20 minutes</li>..
14980 20 20 20 2a 20 3c 6c 69 3e 4f 3a 20 74 69 6d 65 * <li>O: time
14990 7a 6f 6e 65 20 6f 66 66 73 65 74 3c 2f 6c 69 3e zone offset</li>
149a0 0d 0a 20 20 20 20 2a 20 3c 2f 75 6c 3e 0d 0a 20 .. * </ul>..
149b0 20 20 20 2a 20 40 70 61 72 61 6d 20 7b 44 61 74 * @param {Dat
149c0 65 7d 20 76 44 61 74 65 20 74 68 65 20 64 61 74 e} vDate the dat
149d0 65 20 74 6f 20 66 6f 72 6d 61 74 0d 0a 20 20 20 e to format..
149e0 20 2a 20 40 70 61 72 61 6d 20 7b 53 74 72 69 6e * @param {Strin
149f0 67 7d 20 76 46 6f 72 6d 61 74 20 74 68 65 20 66 g} vFormat the f
14a00 6f 72 6d 61 74 20 70 61 74 74 65 72 6e 0d 0a 20 ormat pattern..
14a10 20 20 20 2a 20 40 72 65 74 75 72 6e 20 7b 53 74 * @return {St
14a20 72 69 6e 67 7d 20 66 6f 72 6d 61 74 74 65 64 20 ring} formatted
14a30 64 61 74 65 20 73 74 72 69 6e 67 0d 0a 20 20 20 date string..
14a40 20 2a 20 40 73 74 61 74 69 63 0d 0a 20 20 20 20 * @static..
14a50 2a 2f 0d 0a 20 20 20 20 66 6f 72 6d 61 74 44 61 */.. formatDa
14a60 74 65 20 3a 20 66 75 6e 63 74 69 6f 6e 28 76 44 te : function(vD
14a70 61 74 65 2c 20 76 46 6f 72 6d 61 74 29 20 7b 0d ate, vFormat) {.
14a80 0a 20 20 20 20 20 20 20 20 76 61 72 20 76 44 61 . var vDa
14a90 79 20 3d 20 74 68 69 73 2e 61 64 64 5a 65 72 6f y = this.addZero
14aa0 28 76 44 61 74 65 2e 67 65 74 44 61 74 65 28 29 (vDate.getDate()
14ab0 29 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 20 );.. var
14ac0 76 4d 6f 6e 74 68 20 3d 20 74 68 69 73 2e 61 64 vMonth = this.ad
14ad0 64 5a 65 72 6f 28 76 44 61 74 65 2e 67 65 74 4d dZero(vDate.getM
14ae0 6f 6e 74 68 28 29 2b 31 29 3b 0d 0a 20 20 20 20 onth()+1);..
14af0 20 20 20 20 76 61 72 20 76 59 65 61 72 4c 6f 6e var vYearLon
14b00 67 20 3d 20 74 68 69 73 2e 61 64 64 5a 65 72 6f g = this.addZero
14b10 28 76 44 61 74 65 2e 67 65 74 46 75 6c 6c 59 65 (vDate.getFullYe
14b20 61 72 28 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 ar());..
14b30 76 61 72 20 76 59 65 61 72 53 68 6f 72 74 20 3d var vYearShort =
14b40 20 74 68 69 73 2e 61 64 64 5a 65 72 6f 28 76 44 this.addZero(vD
14b50 61 74 65 2e 67 65 74 46 75 6c 6c 59 65 61 72 28 ate.getFullYear(
14b60 29 2e 74 6f 53 74 72 69 6e 67 28 29 2e 73 75 62 ).toString().sub
14b70 73 74 72 69 6e 67 28 33 2c 34 29 29 3b 0d 0a 20 string(3,4));..
14b80 20 20 20 20 20 20 20 76 61 72 20 76 59 65 61 72 var vYear
14b90 20 3d 20 28 76 46 6f 72 6d 61 74 2e 69 6e 64 65 = (vFormat.inde
14ba0 78 4f 66 28 22 79 79 79 79 22 29 3e 2d 31 3f 76 xOf("yyyy")>-1?v
14bb0 59 65 61 72 4c 6f 6e 67 3a 76 59 65 61 72 53 68 YearLong:vYearSh
14bc0 6f 72 74 29 3b 0d 0a 20 20 20 20 20 20 20 20 76 ort);.. v
14bd0 61 72 20 76 48 6f 75 72 20 20 3d 20 74 68 69 73 ar vHour = this
14be0 2e 61 64 64 5a 65 72 6f 28 76 44 61 74 65 2e 67 .addZero(vDate.g
14bf0 65 74 48 6f 75 72 73 28 29 29 3b 0d 0a 20 20 20 etHours());..
14c00 20 20 20 20 20 76 61 72 20 76 4d 69 6e 75 74 65 var vMinute
14c10 20 3d 20 74 68 69 73 2e 61 64 64 5a 65 72 6f 28 = this.addZero(
14c20 76 44 61 74 65 2e 67 65 74 4d 69 6e 75 74 65 73 vDate.getMinutes
14c30 28 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 ());.. va
14c40 72 20 76 53 65 63 6f 6e 64 20 3d 20 74 68 69 73 r vSecond = this
14c50 2e 61 64 64 5a 65 72 6f 28 76 44 61 74 65 2e 67 .addZero(vDate.g
14c60 65 74 53 65 63 6f 6e 64 73 28 29 29 3b 0d 0a 20 etSeconds());..
14c70 20 20 20 20 20 20 20 76 61 72 20 76 54 69 6d 65 var vTime
14c80 5a 6f 6e 65 20 3d 20 74 68 69 73 2e 4f 28 76 44 Zone = this.O(vD
14c90 61 74 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 76 ate);.. v
14ca0 61 72 20 76 44 61 74 65 53 74 72 69 6e 67 20 3d ar vDateString =
14cb0 20 76 46 6f 72 6d 61 74 2e 72 65 70 6c 61 63 65 vFormat.replace
14cc0 28 2f 64 64 2f 67 2c 20 76 44 61 79 29 2e 72 65 (/dd/g, vDay).re
14cd0 70 6c 61 63 65 28 2f 4d 4d 2f 67 2c 20 76 4d 6f place(/MM/g, vMo
14ce0 6e 74 68 29 2e 72 65 70 6c 61 63 65 28 2f 79 7b nth).replace(/y{
14cf0 31 2c 34 7d 2f 67 2c 20 76 59 65 61 72 29 3b 0d 1,4}/g, vYear);.
14d00 0a 20 20 20 20 20 20 20 20 76 44 61 74 65 53 74 . vDateSt
14d10 72 69 6e 67 20 3d 20 76 44 61 74 65 53 74 72 69 ring = vDateStri
14d20 6e 67 2e 72 65 70 6c 61 63 65 28 2f 68 68 2f 67 ng.replace(/hh/g
14d30 2c 20 76 48 6f 75 72 29 2e 72 65 70 6c 61 63 65 , vHour).replace
14d40 28 2f 6d 6d 2f 67 2c 20 76 4d 69 6e 75 74 65 29 (/mm/g, vMinute)
14d50 2e 72 65 70 6c 61 63 65 28 2f 73 73 2f 67 2c 20 .replace(/ss/g,
14d60 76 53 65 63 6f 6e 64 29 3b 0d 0a 20 20 20 20 20 vSecond);..
14d70 20 20 20 76 44 61 74 65 53 74 72 69 6e 67 20 3d vDateString =
14d80 20 76 44 61 74 65 53 74 72 69 6e 67 2e 72 65 70 vDateString.rep
14d90 6c 61 63 65 28 2f 4f 2f 67 2c 20 76 54 69 6d 65 lace(/O/g, vTime
14da0 5a 6f 6e 65 29 3b 0d 0a 20 20 20 20 20 20 20 20 Zone);..
14db0 72 65 74 75 72 6e 20 76 44 61 74 65 53 74 72 69 return vDateStri
14dc0 6e 67 3b 0d 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 ng;.. },..
14dd0 20 20 20 20 20 0d 0a 20 20 20 20 2f 2a 2a 0d 0a .. /**..
14de0 20 20 20 20 2a 20 40 70 72 69 76 61 74 65 0d 0a * @private..
14df0 20 20 20 20 2a 20 40 73 74 61 74 69 63 0d 0a 20 * @static..
14e00 20 20 20 2a 2f 0d 0a 20 20 20 20 61 64 64 5a 65 */.. addZe
14e10 72 6f 20 3a 20 66 75 6e 63 74 69 6f 6e 28 76 4e ro : function(vN
14e20 75 6d 62 65 72 29 20 7b 0d 0a 20 20 20 20 20 20 umber) {..
14e30 20 20 72 65 74 75 72 6e 20 28 28 76 4e 75 6d 62 return ((vNumb
14e40 65 72 20 3c 20 31 30 29 20 3f 20 22 30 22 20 3a er < 10) ? "0" :
14e50 20 22 22 29 20 2b 20 76 4e 75 6d 62 65 72 3b 0d "") + vNumber;.
14e60 0a 20 20 20 20 7d 2c 0d 0a 20 20 20 20 0d 0a 20 . },.. ..
14e70 20 20 20 2f 2a 2a 0d 0a 20 20 20 20 2a 20 46 6f /**.. * Fo
14e80 72 6d 61 74 65 73 20 74 68 65 20 54 69 6d 65 4f rmates the TimeO
14e90 66 66 65 73 74 0d 0a 20 20 20 20 2a 20 54 68 61 ffest.. * Tha
14ea0 6e 6b 73 20 74 6f 20 68 74 74 70 3a 2f 2f 77 77 nks to http://ww
14eb0 77 2e 73 76 65 6e 64 74 6f 66 74 65 2e 63 6f 6d w.svendtofte.com
14ec0 2f 63 6f 64 65 2f 64 61 74 65 5f 66 6f 72 6d 61 /code/date_forma
14ed0 74 2f 0d 0a 20 20 20 20 2a 20 40 70 72 69 76 61 t/.. * @priva
14ee0 74 65 0d 0a 20 20 20 20 2a 2f 0d 0a 20 20 20 20 te.. */..
14ef0 4f 20 3a 20 66 75 6e 63 74 69 6f 6e 20 28 64 61 O : function (da
14f00 74 65 29 20 7b 0d 0a 20 20 20 20 20 20 20 20 2f te) {.. /
14f10 2f 20 44 69 66 66 65 72 65 6e 63 65 20 74 6f 20 / Difference to
14f20 47 72 65 65 6e 77 69 63 68 20 74 69 6d 65 20 28 Greenwich time (
14f30 47 4d 54 29 20 69 6e 20 68 6f 75 72 73 0d 0a 20 GMT) in hours..
14f40 20 20 20 20 20 20 20 76 61 72 20 6f 73 20 3d 20 var os =
14f50 4d 61 74 68 2e 61 62 73 28 64 61 74 65 2e 67 65 Math.abs(date.ge
14f60 74 54 69 6d 65 7a 6f 6e 65 4f 66 66 73 65 74 28 tTimezoneOffset(
14f70 29 29 3b 0d 0a 20 20 20 20 20 20 20 20 76 61 72 ));.. var
14f80 20 68 20 3d 20 53 74 72 69 6e 67 28 4d 61 74 68 h = String(Math
14f90 2e 66 6c 6f 6f 72 28 6f 73 2f 36 30 29 29 3b 0d .floor(os/60));.
14fa0 0a 20 20 20 20 20 20 20 20 76 61 72 20 6d 20 3d . var m =
14fb0 20 53 74 72 69 6e 67 28 6f 73 25 36 30 29 3b 0d String(os%60);.
14fc0 0a 20 20 20 20 20 20 20 20 68 2e 6c 65 6e 67 74 . h.lengt
14fd0 68 20 3d 3d 20 31 3f 20 68 20 3d 20 22 30 22 2b h == 1? h = "0"+
14fe0 68 3a 31 3b 0d 0a 20 20 20 20 20 20 20 20 6d 2e h:1;.. m.
14ff0 6c 65 6e 67 74 68 20 3d 3d 20 31 3f 20 6d 20 3d length == 1? m =
15000 20 22 30 22 2b 6d 3a 31 3b 0d 0a 20 20 20 20 20 "0"+m:1;..
15010 20 20 20 72 65 74 75 72 6e 20 64 61 74 65 2e 67 return date.g
15020 65 74 54 69 6d 65 7a 6f 6e 65 4f 66 66 73 65 74 etTimezoneOffset
15030 28 29 20 3c 20 30 20 3f 20 22 2b 22 2b 68 2b 6d () < 0 ? "+"+h+m
15040 20 3a 20 22 2d 22 2b 68 2b 6d 3b 0d 0a 20 20 20 : "-"+h+m;..
15050 20 7d 0d 0a 7d 3b 0d 0a 0d 0a 0d 0a 2f 2a 2a 0d }..};....../**.
15060 0a 2a 20 69 6e 74 65 72 6e 61 6c 20 4c 6f 67 67 .* internal Logg
15070 65 72 20 74 6f 20 62 65 20 75 73 65 64 0d 0a 2a er to be used..*
15080 20 40 70 72 69 76 61 74 65 0d 0a 2a 2f 0d 0a 76 @private..*/..v
15090 61 72 20 6c 6f 67 34 6a 73 4c 6f 67 67 65 72 20 ar log4jsLogger
150a0 3d 20 4c 6f 67 34 6a 73 2e 67 65 74 4c 6f 67 67 = Log4js.getLogg
150b0 65 72 28 22 4c 6f 67 34 6a 73 22 29 3b 0d 0a 6c er("Log4js");..l
150c0 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 61 64 64 41 og4jsLogger.addA
150d0 70 70 65 6e 64 65 72 28 6e 65 77 20 4c 6f 67 34 ppender(new Log4
150e0 6a 73 2e 42 72 6f 77 73 65 72 43 6f 6e 73 6f 6c js.BrowserConsol
150f0 65 41 70 70 65 6e 64 65 72 28 29 29 3b 0d 0a 6c eAppender());..l
15100 6f 67 34 6a 73 4c 6f 67 67 65 72 2e 73 65 74 4c og4jsLogger.setL
15110 65 76 65 6c 28 4c 6f 67 34 6a 73 2e 4c 65 76 65 evel(Log4js.Leve
15120 6c 2e 41 4c 4c 29 3b 0d 0a l.ALL);..