diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-10-22 11:04:57 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-10-22 11:04:57 +0000 |
commit | 9d95aafe8ccf9d037dc97bb875bc62b919d8b123 (patch) | |
tree | f8698c805f73f8f75c4614e23af2608d09097f97 | |
parent | 143427f90b9b54bd957cd50a2110157ddfedeeaf (diff) |
* 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.
-rw-r--r-- | src/libnix/exec.cc | 8 | ||||
-rw-r--r-- | src/libnix/exec.hh | 3 | ||||
-rw-r--r-- | src/libnix/normalise.cc | 3 |
3 files changed, 8 insertions, 6 deletions
diff --git a/src/libnix/exec.cc b/src/libnix/exec.cc index a51b605d8..4934712f9 100644 --- a/src/libnix/exec.cc +++ b/src/libnix/exec.cc @@ -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) diff --git a/src/libnix/exec.hh b/src/libnix/exec.hh index 8d410e404..fc5bd6ac8 100644 --- a/src/libnix/exec.hh +++ b/src/libnix/exec.hh @@ -15,7 +15,8 @@ typedef map<string, string> Environment; /* Run a program. */ void runProgram(const string & program, - const Strings & args, const Environment & env); + const Strings & args, const Environment & env, + const string & logFileName); #endif /* !__EXEC_H */ diff --git a/src/libnix/normalise.cc b/src/libnix/normalise.cc index 196fcad2e..0ce38d68a 100644 --- a/src/libnix/normalise.cc +++ b/src/libnix/normalise.cc @@ -164,7 +164,8 @@ Path normaliseNixExpr(const Path & _nePath, PathSet pending) /* Run the builder. */ msg(lvlChatty, format("building...")); - runProgram(ne.derivation.builder, ne.derivation.args, env); + runProgram(ne.derivation.builder, ne.derivation.args, env, + nixLogDir + "/" + baseNameOf(nePath)); msg(lvlChatty, format("build completed")); } else |