Set log_line_prefix and application name in test drivers
authorPeter Eisentraut <[email protected]>
Fri, 30 Sep 2016 16:00:00 +0000 (12:00 -0400)
committerPeter Eisentraut <[email protected]>
Sat, 1 Oct 2016 01:32:33 +0000 (21:32 -0400)
Before pg_regress runs psql, set the application name to the test name.
Similarly, set the application name to the test file name in the TAP
tests.  Also, set a default log_line_prefix that show the application
name, as well as the PID and a time stamp.

That way, the server log output can be correlated to the test input
files, making debugging a bit easier.

src/test/perl/PostgresNode.pm
src/test/perl/TestLib.pm
src/test/regress/pg_regress.c
src/test/regress/pg_regress_main.c

index 1611ac9461d6b5c1909fa0e2ad2414628dd78066..4b225e14717c65f70369405590a3e5ed5f5bf20b 100644 (file)
@@ -409,6 +409,7 @@ sub init
    open my $conf, ">>$pgdata/postgresql.conf";
    print $conf "\n# Added by PostgresNode.pm\n";
    print $conf "fsync = off\n";
+   print $conf "log_line_prefix = '%m [%p] %q%a '\n";
    print $conf "log_statement = all\n";
    print $conf "port = $port\n";
 
index 31e7acd4daea8db486fc0b4d27c6a1821b96f88e..d22957ceb0e61107a9c7d2556c09638d4af22dbb 100644 (file)
@@ -62,6 +62,8 @@ BEGIN
    delete $ENV{PGPORT};
    delete $ENV{PGHOST};
 
+   $ENV{PGAPPNAME} = $0;
+
    # Must be set early
    $windows_os = $Config{osname} eq 'MSWin32' || $Config{osname} eq 'msys';
 }
index b28cb0b1e1e6b46b4b5cfb7ec4fca65fa6a48796..762adb84432bc88df455c2929a1ef0f66db4a328 100644 (file)
@@ -2270,6 +2270,7 @@ regression_main(int argc, char *argv[], init_function ifunc, test_function tfunc
        fputs("\n# Configuration added by pg_regress\n\n", pg_conf);
        fputs("log_autovacuum_min_duration = 0\n", pg_conf);
        fputs("log_checkpoints = on\n", pg_conf);
+       fputs("log_line_prefix = '%m [%p] %q%a '\n", pg_conf);
        fputs("log_lock_waits = on\n", pg_conf);
        fputs("log_temp_files = 128kB\n", pg_conf);
        fputs("max_prepared_transactions = 2\n", pg_conf);
index d9591c0608c931225151204bb8346cb0d66078d7..273363588ad5aec2653223ac139732a9c5009e22 100644 (file)
@@ -34,6 +34,7 @@ psql_start_test(const char *testname,
    char        expectfile[MAXPGPATH];
    char        psql_cmd[MAXPGPATH * 3];
    size_t      offset = 0;
+   char       *appnameenv;
 
    /*
     * Look for files in the output dir first, consistent with a vpath search.
@@ -63,6 +64,9 @@ psql_start_test(const char *testname,
        offset += snprintf(psql_cmd + offset, sizeof(psql_cmd) - offset,
                           "%s ", launcher);
 
+   appnameenv = psprintf("PGAPPNAME=pg_regress/%s", testname);
+   putenv(appnameenv);
+
    snprintf(psql_cmd + offset, sizeof(psql_cmd) - offset,
             "\"%s%spsql\" -X -a -q -d \"%s\" < \"%s\" > \"%s\" 2>&1",
             bindir ? bindir : "",
@@ -80,6 +84,9 @@ psql_start_test(const char *testname,
        exit(2);
    }
 
+   unsetenv("PGAPPNAME");
+   free(appnameenv);
+
    return pid;
 }