Background 
Yahoo JIRA issue    Apache JIRA issue (TS-306)Currently, there is no log 
rotation implemented for traffic.out, diags.log, and manager.log. Each of those 
files is logged into using a different and unique way. This is in contrast to 
the logging subsystem used to record the proxy accesses and errors, which 
implements rotation. For example, the following files can be written into in 
these ways. Note: these are not the only ways the files are written into. 
traffic.out:Logs that are sent to stdout and stderr are forwarded to traffic.out
diags.log:Everything logged by using the Diags macros (Note(..), Error(..), …) 
are put into diags.log
manager.log:traffic_manager logs its messages with fprintf’s and 
mgmt_{log,elog,fatal,..} functions (which are deprecated) from 
mgmt/utils/MgmtUtils.h. Some of those messages find their way into manager.log

Problem
Since those files aren’t being rotated, they can get too large for various 
reasons (core, naughty plugins, proxy, etc). Furthermore, the lack of a unified 
logging system makes changes to the logging infrastructure more work than one 
would expect. 

Solutions
To solve these problems, we have a couple options:
   
   - Pipe logs from traffic.out, diags.log, and manager.log into a 3rd party 
logging utility [1]
   
   - Pros
   
   - Virtually no changes to existing code base
   - Easy
   - Apache httpd & daemon tools already do this
   
   - Cons
   
   - Not an elegant solution
   
   - Use the trafficserver script to spawn a daemon that periodically “stops 
the world” (ie the logs wouldn’t flush) for all logging calls, and rotates the 
files [1]
   
   - Pros
   
   - No difficult changes need to be made the current infrastructure, we would 
only need to figure out how to 1) “stop the world” and 2) reload file 
descriptors
   
   - Cons
   
   - It’s hard to say how big the interim buffer (for holding all the logs 
while the world stops) should be
   - Not the most elegant solution
   
   - Reuse the proxy logging infrastructure, and make a LogObject managed by 
the proxy’s global LogObjectManager for each of the log files we want to 
implement rotation for. 
   
   - Pros
   
   - No repeated code
   - We would have a unified logging infrastructure
   
   - Cons
   
   - Significant changes to code base
   - Would be difficult to log events before the proxy logging infrastructure 
starts up [2]

Comments
James Peach has previously mentioned that log rotation for diags.log should be 
implemented the same as all other rotated log files here


----------
[1] Kang Li; earlier proposal 
https://docs.google.com/document/d/1c9E0i8N3krL3msiHOLpgR99UzNUAt5N6FP1L3W3ghGs
[2] http://articles.qos.ch/internalLogging.html
 



     On Wednesday, June 17, 2015 5:20 PM, Daniel Xu 
<danie...@yahoo-inc.com.INVALID> wrote:
   

 Apologies, here is the link.Logsubsystemunificationproposal.pdf

|   |
|   |  |   |   |   |   |   |
| Logsubsystemunificationproposal.pdfShared with Dropbox |
|  |
| View on www.dropbox.com | Preview by Yahoo |
|  |
|   |

 


    On Wednesday, June 17, 2015 5:00 PM, Daniel Xu 
<danie...@yahoo-inc.com.INVALID> wrote:
  

 Attached is a proposal to fix issue TS-306 (and more). 

Please respond with any comments/concerns/criticisms you may have.
-Dan 





  

Reply via email to