## org.apache.hadoop.mapred
Class TaskLog

    java.lang.Object
      org.apache.hadoop.mapred.TaskLog

    public class TaskLog

extends Object

A simple logger to handle the task-specific user logs. This class uses the system property `hadoop.log.dir`. This class is for Map/Reduce internal use only.

Nested Class Summary
`static class` `TaskLog.LogName` The filter for userlogs.

Constructor Summary
`TaskLog()`

Method Summary
`static String` `addCommand(List<String> cmd, boolean isExecutable)` Add quotes to each of the command strings and return as a single string
`static List<String>` `captureDebugOut(List<String> cmd, File debugoutFilename)` Wrap a command in a shell to capture debug script's stdout and stderr to debugout.
`static List<String>` `captureOutAndError(List<String> cmd, File stdoutFilename, File stderrFilename, long tailLength)` Wrap a command in a shell to capture stdout and stderr to files.
`static List<String>` `captureOutAndError(List<String> setup, List<String> cmd, File stdoutFilename, File stderrFilename, long tailLength)` Wrap a command in a shell to capture stdout and stderr to files.
`static List<String>` `captureOutAndError(List<String> setup, List<String> cmd, File stdoutFilename, File stderrFilename, long tailLength, boolean useSetsid)` Wrap a command in a shell to capture stdout and stderr to files.
`static List<String>` `captureOutAndError(List<String> setup, List<String> cmd, File stdoutFilename, File stderrFilename, long tailLength, boolean useSetsid, String pidFileName)` Deprecated. pidFiles are no more used. Instead pid is exported to env variable JVM_PID.
`static List<String>` `captureOutAndError(List<String> setup, List<String> cmd, File stdoutFilename, File stderrFilename, long tailLength, String pidFileName)` Deprecated. pidFiles are no more used. Instead pid is exported to env variable JVM_PID.
`static void` `createTaskAttemptLogDir(TaskAttemptID taskID, boolean isCleanup, String[] localDirs)` Create log directory for the given attempt.
`static String` `getBaseLogDir()`
`static File` `getJobDir(JobID jobid)` Get the user log directory for the job jobid.
`static File` `getJobDir(String jobid)` Get the user log directory for the job jobid.
`static String` `getTaskAttemptLogDir(TaskAttemptID taskID, String cleanupSuffix, String[] localDirs)` Get attempt log directory path for the given attempt-id under randomly selected mapred local directory.
`static File` `getTaskLogFile(TaskAttemptID taskid, boolean isCleanup, TaskLog.LogName filter)`
`static long` `getTaskLogLength(JobConf conf)` Get the desired maximum length of task's logs.
`static File` `getUserLogDir()`
`static void` `syncLogs(String logLocation, TaskAttemptID taskid, boolean isCleanup, boolean segmented)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### TaskLog

    public TaskLog()

Method Detail

### createTaskAttemptLogDir

    public static void createTaskAttemptLogDir(TaskAttemptID taskID,
                                               boolean isCleanup,
                                               String[] localDirs)
                                        throws IOException

  Create log directory for the given attempt. This involves creating the following and setting proper permissions for the new directories
  {hadoop.log.dir}/userlogs/<jobid>
  {hadoop.log.dir}/userlogs/<jobid>/
  {one of the mapred-local-dirs}/userlogs/<jobid>
  {one of the mapred-local-dirs}/userlogs/<jobid>/

  Parameters:
    `taskID` - attempt-id for which log dir is to be created
    `isCleanup` - Is this attempt a cleanup attempt ?
    `localDirs` - mapred local directories
  Throws:
    `IOException`

### getTaskAttemptLogDir

    public static String getTaskAttemptLogDir(TaskAttemptID taskID,
                                              String cleanupSuffix,
                                              String[] localDirs)
                                       throws IOException

  Get attempt log directory path for the given attempt-id under randomly selected mapred local directory.

  Parameters:
    `taskID` - attempt-id for which log dir path is needed
    `cleanupSuffix` - ".cleanup" if this attempt is a cleanup attempt
    `localDirs` - mapred local directories
  Returns:
    target task attempt log directory
  Throws:
    `IOException`

### getTaskLogFile

    public static File getTaskLogFile(TaskAttemptID taskid,
                                      boolean isCleanup,
                                      TaskLog.LogName filter)

### getBaseLogDir

    public static String getBaseLogDir()

### syncLogs

    public static void syncLogs(String logLocation,
                                TaskAttemptID taskid,
                                boolean isCleanup,
                                boolean segmented)
                         throws IOException

  Throws:
    `IOException`

### getTaskLogLength

    public static long getTaskLogLength(JobConf conf)

  Get the desired maximum length of task's logs.

  Parameters:
    `conf` - the job to look in
  Returns:
    the number of bytes to cap the log files at

### captureOutAndError

    public static List<String> captureOutAndError(List<String> cmd,
                                                  File stdoutFilename,
                                                  File stderrFilename,
                                                  long tailLength)
                                           throws IOException

  Wrap a command in a shell to capture stdout and stderr to files. If the tailLength is 0, the entire output will be saved.

  Parameters:
    `cmd` - The command and the arguments that should be run
    `stdoutFilename` - The filename that stdout should be saved to
    `stderrFilename` - The filename that stderr should be saved to
    `tailLength` - The length of the tail to be saved.
  Returns:
    the modified command that should be run
  Throws:
    `IOException`

### captureOutAndError

    public static List<String> captureOutAndError(List<String> setup,
                                                  List<String> cmd,
                                                  File stdoutFilename,
                                                  File stderrFilename,
                                                  long tailLength)
                                           throws IOException

  Wrap a command in a shell to capture stdout and stderr to files. Setup commands such as setting memory limit can be passed which will be executed before exec. If the tailLength is 0, the entire output will be saved.

  Parameters:
    `setup` - The setup commands for the execed process.
    `cmd` - The command and the arguments that should be run
    `stdoutFilename` - The filename that stdout should be saved to
    `stderrFilename` - The filename that stderr should be saved to
    `tailLength` - The length of the tail to be saved.
  Returns:
    the modified command that should be run
  Throws:
    `IOException`

### captureOutAndError

    @Deprecated
    public static List<String> captureOutAndError(List<String> setup,
                                                             List<String> cmd,
                                                             File stdoutFilename,
                                                             File stderrFilename,
                                                             long tailLength,
                                                             String pidFileName)
                                           throws IOException

  Deprecated. pidFiles are no more used. Instead pid is exported to env variable JVM_PID.

  Wrap a command in a shell to capture stdout and stderr to files. Setup commands such as setting memory limit can be passed which will be executed before exec. If the tailLength is 0, the entire output will be saved.

  Parameters:
    `setup` - The setup commands for the execed process.
    `cmd` - The command and the arguments that should be run
    `stdoutFilename` - The filename that stdout should be saved to
    `stderrFilename` - The filename that stderr should be saved to
    `tailLength` - The length of the tail to be saved.
  Returns:
    the modified command that should be run
  Throws:
    `IOException`

### captureOutAndError

    @Deprecated
    public static List<String> captureOutAndError(List<String> setup,
                                                             List<String> cmd,
                                                             File stdoutFilename,
                                                             File stderrFilename,
                                                             long tailLength,
                                                             boolean useSetsid,
                                                             String pidFileName)
                                           throws IOException

  Deprecated. pidFiles are no more used. Instead pid is exported to env variable JVM_PID.

  Wrap a command in a shell to capture stdout and stderr to files. Setup commands such as setting memory limit can be passed which will be executed before exec. If the tailLength is 0, the entire output will be saved.

  Parameters:
    `setup` - The setup commands for the execed process.
    `cmd` - The command and the arguments that should be run
    `stdoutFilename` - The filename that stdout should be saved to
    `stderrFilename` - The filename that stderr should be saved to
    `tailLength` - The length of the tail to be saved.
    `useSetsid` - Should setsid be used in the command or not.
  Returns:
    the modified command that should be run
  Throws:
    `IOException`

### captureOutAndError

    public static List<String> captureOutAndError(List<String> setup,
                                                  List<String> cmd,
                                                  File stdoutFilename,
                                                  File stderrFilename,
                                                  long tailLength,
                                                  boolean useSetsid)
                                           throws IOException

  Wrap a command in a shell to capture stdout and stderr to files. Setup commands such as setting memory limit can be passed which will be executed before exec. If the tailLength is 0, the entire output will be saved.

  Parameters:
    `setup` - The setup commands for the execed process.
    `cmd` - The command and the arguments that should be run
    `stdoutFilename` - The filename that stdout should be saved to
    `stderrFilename` - The filename that stderr should be saved to
    `tailLength` - The length of the tail to be saved.
    `useSetsid` - Should setsid be used in the command or not.
  Returns:
    the modified command that should be run
  Throws:
    `IOException`

### addCommand

    public static String addCommand(List<String> cmd,
                                    boolean isExecutable)
                             throws IOException

  Add quotes to each of the command strings and return as a single string

  Parameters:
    `cmd` - The command to be quoted
    `isExecutable` - makes shell path if the first argument is executable
  Returns:
    returns The quoted string.
  Throws:
    `IOException`

### captureDebugOut

    public static List<String> captureDebugOut(List<String> cmd,
                                               File debugoutFilename)
                                        throws IOException

  Wrap a command in a shell to capture debug script's stdout and stderr to debugout.

  Parameters:
    `cmd` - The command and the arguments that should be run
    `debugoutFilename` - The filename that stdout and stderr should be saved to.
  Returns:
    the modified command that should be run
  Throws:
    `IOException`

### getUserLogDir

    public static File getUserLogDir()

### getJobDir

    public static File getJobDir(String jobid)

  Get the user log directory for the job jobid.

  Parameters:
    `jobid` - string representation of the jobid
  Returns:
    user log directory for the job

### getJobDir

    public static File getJobDir(JobID jobid)

  Get the user log directory for the job jobid.

  Parameters:
    `jobid` - the jobid object
  Returns:
    user log directory for the job

Copyright © 2009 The Apache Software Foundation