aboutsummaryrefslogtreecommitdiffstats
path: root/util/logger.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--util/logger.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/util/logger.c b/util/logger.c
index bb0b89e8b..ccf049f0c 100644
--- a/util/logger.c
+++ b/util/logger.c
@@ -41,17 +41,19 @@ static FILE *logfp;
void
log_set_logfile( const char *name, int fd )
{
- if( name )
- BUG();
-
if( logfp && logfp != stderr && logfp != stdout )
- fclose( logfp );
- if( fd == 1 )
- logfp = stdout;
- else if( fd == 2 )
- logfp = stderr;
- else
- logfp = fdopen( fd, "a" );
+ fclose( logfp );
+ if( name ) {
+ logfp = fopen ( name, "a" );
+ }
+ else {
+ if( fd == 1 )
+ logfp = stdout;
+ else if( fd == 2 )
+ logfp = stderr;
+ else
+ logfp = fdopen( fd, "a" );
+ }
if( !logfp ) {
logfp = stderr;
log_fatal("can't open fd %d for logging: %s\n", fd, strerror(errno));