Can an active Postgres serverlog be truncated?
By default PostgreSQL logs to stderr, from PostgreSQL Documentation 18.8. Error Reporting and Logging:


  PostgreSQL supports several methods for logging server messages, including stderr, csvlog and syslog. On Windows, eventlog is also supported. Set this parameter to a list of desired log destinations separated by commas. The default is to log to stderr only. This parameter can only be set in the postgresql.conf file or on the server command line.


If you just direct stderr to file according to the documentation this means you have to stop and restart the server to truncate, 23.3. Log File Maintenance:


  If you simply direct the stderr of postgres into a file, you will have log output, but the only way to truncate the log file is to stop and restart the server. This might be acceptable if you are using PostgreSQL in a development environment, but few production servers would find this behavior acceptable.


About manually deleting the file, take a look at this thread from PostgreSQL mailing lists (from year 2010):


  What platform?  If in Unix/Linux, just:
  cat /dev/null > postgres_logfile
  or
  postgres_logfile
  Most running programs don't like it when you delete a file with an open file handle but you it doesn't mind if you clear it on the fly.  Not sure how to do this in a Windows environment.


And finally here's a good blog post more generally about PostgreSQL logs.