From: Michael G. <ga...@ma...> - 2005-08-28 14:11:28
|
Hi, Here is some data about the current logging facilities in WeBWorK2. It is taken from global.conf.dist with a few annotations comparing the facilities with WW1.9 ######################################################################## ######## # Logs ######################################################################## ######## # FIXME: take logs out of %webworkFiles/%courseFiles and give them their own # top-level hash. > Fixing this would also allow us to consolidate the writeLog and > writeCourseLog subroutines. Currently the only difference > is where in the course environment they search for the path to the > log file. # Logs data about how long it takes to process problems. (Do not confuse this # with the /other/ timing log which can be set by WeBWorK::Timing and is used # for benchmarking system performance in general. At some point, this timing # mechanism will be deprecated in favor of the WeBWorK::Timing mechanism.) $webworkFiles{logs}{timing} = "$webworkDirs{logs}/timing.log"; > - this is total time taken for any given response. I find this > helpful in moderating day to day > performance of our local servers. It is also possible to obtain > more detailed timing data > -- but it is now housed in the Debug.pm module, not Timing.pm. I > don't think it is necessary > for production installations. The timing log fills up fast and > should be rotated. # Logs courses created via the web-based Course Administration module. $webworkFiles{logs}{hosted_courses} = "$webworkDirs{logs}/ hosted_courses.log"; > this is only used in the Admin course, and keeps a record of > courses created and deleted on the server. # The transaction log contains data from each recorded answer submission. This # is useful if the database becomes corrupted. $webworkFiles{logs}{transaction} = "$courseDirs{logs}/ transaction.log"; > This records all of the data provided by a student when they answer > a problem. It is updated using the Utils::writeLog(ce, "transaction" ... ) subroutine. > It is roughly equivalent to > the Global::log_info logging facility in WW1.9 which "captured > every key stroke" of the student and store its data in > the file, usually named access_log. What it actually saved was the > entire url query string, including any hidden data. > > There is one important difference in that Global::log_info was > called on most scripts, including instructor scripts, while > the transaction log is only updated when answering a WeBWorK > problem. The WW1.9 log contains instructor house keeping > actions as well as student actions. # The answer log stores a history of all users' submitted answers. $courseFiles{logs}{answer_log} = "$courseDirs{logs}/answer_log"; > This is a separate log that records the students' answer history. > it duplicates some information in the transaction log. It was > created at a different time and for a different purpose than the > transaction.log. It might be useful to consolidate some of the > code involved in these two logs. It also would be worth > considering placing this data directly in the sql database. The > upside, particularly for student answers, is that it would become > easier to search for certain types of student mistakes using sql > queries. On the downside this might interfere with performance. > The format for storing the data in both answer_log and in > transaction log is somewhat ad hoc. If we continue to store the > data in a file then storing the data in an xml format would > facilitate being able to manipulate the data later using > standardized tools. We might store the data in a file, but > periodically extract it and store it in an sql database for > research purposes. # Log logins. $courseFiles{logs}{login_log} = "$courseDirs{logs}/login.log"; > This merely records each time a student logs in to webwork. Take care, Mike ################# On Aug 27, 2005, at 6:49 PM, John Jones wrote: > Webwork 1 had a fuller logging procedure, where basically every > click was logged. I found that useful since I sometimes had to > figure out what a teacher had done (in addition to answering > questions about what students did). > > The webwork 2 logging framework made it easy to replicate this: one > line in global.conf to define the log file, and then one (long) > line in ContentGenerator to call the writeCourseLog to record the > url and the cgi parameters. So, this raised a couple of questions: > would we want this facility in the main webwork? > if so, should it be more refined (so individual modules can give > more finely tuned log entries)? > Thoughts? > > John > |