Changeset 1341
- Timestamp:
- 09/04/08 23:56:58
(3 months ago)
- Author:
- scitech
- Message:
apache logger problems
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r1340 |
r1341 |
|
| 1 | 1 | ispCP ω 1.0.0 Changelog |
|---|
| 2 | 2 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|---|
| 3 | | 008-08-16 Daniel Andreca |
|---|
| | 3 | 2008-09-05 Daniel Andreca |
|---|
| | 4 | - ENGINE: |
|---|
| | 5 | * Fixed #1526: apache logger problems |
|---|
| | 6 | |
|---|
| | 7 | 2008-09-03 Daniel Andreca |
|---|
| 4 | 8 | - SETUP: |
|---|
| 5 | 9 | * RC6 remote database support for upgrade script (thanks Standbye) |
|---|
| r1339 |
r1341 |
|
| 46 | 46 | getopts( 'e', \%OPTS ); |
|---|
| 47 | 47 | |
|---|
| 48 | | if ( !-d $main::cfg{'APACHE_LOG_DIR'}) { |
|---|
| 49 | | print STDERR "[ispcp-apache-logger] target directory ".$main::cfg{'APACHE_LOG_DIR'}." does not exist - exiting.\n"; |
|---|
| 50 | | exit; |
|---|
| 51 | | } |
|---|
| 52 | | |
|---|
| 53 | 48 | my $MAXFILES = "33"; |
|---|
| 54 | 49 | if ( $main::cfg{'APACHE_MAX_OPEN_LOG'} ) { |
|---|
| 55 | 50 | $MAXFILES = $main::cfg{'APACHE_MAX_OPEN_LOG'}; |
|---|
| | 51 | } |
|---|
| | 52 | |
|---|
| | 53 | my $MAXLOGFILESIZE = 10485760; # 10Mb |
|---|
| | 54 | if ( $main::cfg{'APACHE_MAX_LOG_FILE_SIZE'} ) { |
|---|
| | 55 | $MAXLOGFILESIZE = $main::cfg{'APACHE_MAX_LOG_FILE_SIZE'}; |
|---|
| 56 | 56 | } |
|---|
| 57 | 57 | |
|---|
| … | … | |
| 65 | 65 | sub DefaultLogs(); |
|---|
| 66 | 66 | sub ErrorLogs(); |
|---|
| 67 | | |
|---|
| 68 | | open (STDERR, ">", "$main::cfg{'LOG_DIR'}/ispcp-apache-logger.stderr") or die ( "Can't redirect STDERR" );; |
|---|
| 69 | | STDERR->autoflush(1); |
|---|
| 70 | | open (STDOUT, ">", "$main::cfg{'LOG_DIR'}/ispcp-apache-logger.stdout") or die ( "Can't redirect STDOUT" );; |
|---|
| 71 | | STDOUT->autoflush(1); |
|---|
| 72 | | |
|---|
| 73 | | if ( $OPTS{'e'} ) { |
|---|
| | 67 | sub checkFileSize; |
|---|
| | 68 | |
|---|
| | 69 | ## Creating log files if possible ## |
|---|
| | 70 | |
|---|
| | 71 | if ( !-d $main::cfg{'LOG_DIR'} ) { |
|---|
| | 72 | print STDERR "[ispcp-apache-logger] target directory ".$main::cfg{'LOG_DIR'}." does not exist - logging on standard streams.\n"; |
|---|
| | 73 | } else { |
|---|
| | 74 | checkFileSize("$main::cfg{'LOG_DIR'}/ispcp-apache-logger.stderr"); |
|---|
| | 75 | checkFileSize("$main::cfg{'LOG_DIR'}/ispcp-apache-logger.stdout"); |
|---|
| | 76 | |
|---|
| | 77 | my $res = open (STDERR, ">>", "$main::cfg{'LOG_DIR'}/ispcp-apache-logger.stderr"); |
|---|
| | 78 | if (!defined($res)) { |
|---|
| | 79 | print STDERR "[ispcp-apache-logger] Can't redirect STDERR\n"; |
|---|
| | 80 | } else { |
|---|
| | 81 | STDERR->autoflush(1); |
|---|
| | 82 | } |
|---|
| | 83 | $res = open (STDOUT, ">>", "$main::cfg{'LOG_DIR'}/ispcp-apache-logger.stdout"); |
|---|
| | 84 | if (!defined($res)) { |
|---|
| | 85 | print STDERR "[ispcp-apache-logger] Can't redirect STDOUT\n"; |
|---|
| | 86 | } else { |
|---|
| | 87 | STDOUT->autoflush(1); |
|---|
| | 88 | } |
|---|
| | 89 | } |
|---|
| | 90 | |
|---|
| | 91 | if ( !-d $main::cfg{'APACHE_LOG_DIR'}) { |
|---|
| | 92 | print STDERR "[ispcp-apache-logger] target directory ".$main::cfg{'APACHE_LOG_DIR'}." does not exist!!!\n"; |
|---|
| | 93 | } elsif ( !-d $main::cfg{'APACHE_USERS_LOG_DIR'}) { |
|---|
| | 94 | print STDERR "[ispcp-apache-logger] target directory ".$main::cfg{'APACHE_USERS_LOG_DIR'}." does not exist!!!.\n"; |
|---|
| | 95 | } elsif ( $OPTS{'e'} ) { |
|---|
| 74 | 96 | ErrorLogs(); |
|---|
| 75 | 97 | } else { |
|---|
| … | … | |
| 77 | 99 | } |
|---|
| 78 | 100 | |
|---|
| | 101 | while ( my $log_line = <STDIN> ){} |
|---|
| | 102 | |
|---|
| 79 | 103 | sub ErrorLogs(){ |
|---|
| | 104 | if (defined($main::engine_debug)){ |
|---|
| | 105 | print STDOUT "[ispcp-apache-logger] Starting error log proccessing...\n"; |
|---|
| | 106 | } |
|---|
| 80 | 107 | while ( my $log_line = <STDIN> ) { |
|---|
| 81 | 108 | my $vhost = 'default'; |
|---|
| … | … | |
| 108 | 135 | } |
|---|
| 109 | 136 | } |
|---|
| | 137 | |
|---|
| 110 | 138 | sub DefaultLogs(){ |
|---|
| | 139 | if (defined($main::engine_debug)){ |
|---|
| | 140 | print STDOUT "[ispcp-apache-logger] Starting default log proccessing...\n"; |
|---|
| | 141 | } |
|---|
| 111 | 142 | while ( my $log_line = <STDIN> ) { |
|---|
| 112 | 143 | my ($vhost, $size, $line) = $log_line =~ m/^(\S+) (\d+|-) (.*)$/s; |
|---|
| 113 | | if(!defined($vhost)){print "Trouble line:\n\t$log_line\n"; return 0;} |
|---|
| 114 | | if(!defined($size)){print "Trouble line:\n\t$log_line\n"; return 0;} |
|---|
| | 144 | |
|---|
| | 145 | if( !defined($vhost) || !defined($size) ){ |
|---|
| | 146 | print STDERR "[ispcp-apache-logger] Trouble line:\n\t$log_line\n"; |
|---|
| | 147 | } |
|---|
| | 148 | |
|---|
| 115 | 149 | $vhost = lc($vhost) || "default"; |
|---|
| 116 | 150 | if ( $vhost =~ m#[/\\]# ) { $vhost = "default" } |
|---|
| … | … | |
| 156 | 190 | exit; |
|---|
| 157 | 191 | |
|---|
| | 192 | sub checkFileSize(){ |
|---|
| | 193 | my ($file)=@_; |
|---|
| | 194 | if( -e $file && ((my $filesize = -s $file) > $MAXLOGFILESIZE)) { |
|---|
| | 195 | unlink($file); |
|---|
| | 196 | } |
|---|
| | 197 | } |
|---|
| | 198 | |
|---|
| 158 | 199 | sub checkFileExists(){ |
|---|
| 159 | 200 | my ($local_vhost, $hash, $path, $postpend,$force)=@_; |
|---|
| 160 | 201 | if (!(-e "$path/$local_vhost$postpend") || $force eq '1'){ |
|---|
| 161 | | open ($hash->{$local_vhost}, ">>", "$path/$local_vhost$postpend") or die ( "Can't open $path/$local_vhost$postpend" ); |
|---|
| | 202 | my $res = open ($hash->{$local_vhost}, ">>", "$path/$local_vhost$postpend"); |
|---|
| | 203 | if (!defined($res)) { |
|---|
| | 204 | print STDERR "[ispcp-apache-logger] Can't open $path/$local_vhost$postpend\n"; |
|---|
| | 205 | } else { |
|---|
| 162 | 206 | $hash->{$local_vhost}->autoflush(1); |
|---|
| 163 | | } |
|---|
| 164 | | $timestamps{$local_vhost}=time(); |
|---|
| | 207 | $timestamps{$local_vhost}=time(); |
|---|
| | 208 | } |
|---|
| | 209 | } |
|---|
| 165 | 210 | } |
|---|
| 166 | 211 | |
|---|
| … | … | |
| 170 | 215 | close $key; |
|---|
| 171 | 216 | } |
|---|
| 172 | | } |
|---|
| 173 | | else { |
|---|
| | 217 | if (defined($main::engine_debug)){ |
|---|
| | 218 | print STDOUT "[ispcp-apache-logger] Ending error log proccessing...\n"; |
|---|
| | 219 | } |
|---|
| | 220 | } else { |
|---|
| 174 | 221 | foreach my $key ( keys %combined_logs ) { |
|---|
| 175 | 222 | close $key; |
|---|
| … | … | |
| 184 | 231 | } |
|---|
| 185 | 232 | %access_logs = (); |
|---|
| 186 | | } |
|---|
| 187 | | } |
|---|
| | 233 | if (defined($main::engine_debug)){ |
|---|
| | 234 | print STDOUT "[ispcp-apache-logger] Ending default log proccessing...\n"; |
|---|
| | 235 | } |
|---|
| | 236 | } |
|---|
| | 237 | } |
|---|
|
Download in other formats:
#########################################################################
# Site footer - Contents are automatically inserted after main Trac HTML
?>