@@ -91,23 +91,41 @@ extends Reporter with UniqueMessagePositions with HideNonSensicalMessages with M
91
91
}
92
92
93
93
object TestReporter {
94
- val logWriter = {
94
+ private [this ] var outFile : JFile = _
95
+ private [this ] var logWriter : PrintWriter = _
96
+
97
+ private [this ] def initLog () = if (logWriter eq null ) {
95
98
val df = new SimpleDateFormat (" yyyy-MM-dd-HH:mm" )
96
99
val timestamp = df.format(new Date )
97
100
new JFile (" ../testlogs" ).mkdirs()
98
- new PrintWriter (new FileOutputStream (new JFile (s " ../testlogs/tests- $timestamp.log " ), true ))
101
+ outFile = new JFile (s " ../testlogs/tests- $timestamp.log " )
102
+ logWriter = new PrintWriter (new FileOutputStream (outFile, true ))
99
103
}
100
104
101
- def writeToLog (str : String ) = {
105
+ def logPrintln (str : String ) = {
106
+ initLog()
102
107
logWriter.println(str)
103
108
logWriter.flush()
104
109
}
105
110
111
+ def logPrint (str : String ): Unit = {
112
+ initLog()
113
+ logWriter.println(str)
114
+ }
115
+
116
+ def logFlush (): Unit =
117
+ if (logWriter ne null ) logWriter.flush()
118
+
119
+ def logPath : String = {
120
+ initLog()
121
+ outFile.getCanonicalPath
122
+ }
123
+
106
124
def reporter (ps : PrintStream , logLevel : Int ): TestReporter =
107
- new TestReporter (new PrintWriter (ps, true ), writeToLog , logLevel)
125
+ new TestReporter (new PrintWriter (ps, true ), logPrintln , logLevel)
108
126
109
127
def simplifiedReporter (writer : PrintWriter ): TestReporter = {
110
- val rep = new TestReporter (writer, writeToLog , WARNING ) {
128
+ val rep = new TestReporter (writer, logPrintln , WARNING ) {
111
129
/** Prints the message with the given position indication in a simplified manner */
112
130
override def printMessageAndPos (m : MessageContainer , extra : String )(implicit ctx : Context ): Unit = {
113
131
def report () = {
0 commit comments