* Ad hoc per-package logging. When Nix performs a derivation, it now

writes stdout/stderr of the builder to ${prefix}/var/log/nix/x,
  where x is the file name of the derivation expression, e.g.,

    /nix/var/log/nix/54256391624be04fcb426048ae3ea0a4-d-pan-0.14.2.nix

  Note that consecutive builds of the same expression overwrite,
  rather than append to, existing log files.
This commit is contained in:
Eelco Dolstra 2003-10-22 11:04:57 +00:00
parent 143427f90b
commit 9d95aafe8c
3 changed files with 8 additions and 6 deletions

View file

@ -16,14 +16,14 @@ static string pathNullDevice = "/dev/null";
/* Run a program. */
void runProgram(const string & program,
const Strings & args, const Environment & env)
const Strings & args, const Environment & env,
const string & logFileName)
{
/* Create a log file. */
string logFileName = nixLogDir + "/run.log";
string logCommand =
verbosity >= lvlDebug
? "tee -a " + logFileName + " >&2"
: "cat >> " + logFileName;
? "tee " + logFileName + " >&2"
: "cat > " + logFileName;
/* !!! auto-pclose on exit */
FILE * logFile = popen(logCommand.c_str(), "w"); /* !!! escaping */
if (!logFile)