# SDAS Log and Exit Code Specification

## Log

SDAS separates standard output (stdout) and error messages (stderr) to help users quickly locate problems.

* **Standard output classification**: Prints normal results, program running status (such as progress bars, success messages, etc.)
* **Error message classification**: Error messages, warnings, abnormal information
* **Running example**: `example_bash_script > stdout.log 2> stderr.log &`
  * `stdout.log` will contain normal output
  * `stderr.log` will contain error messages

## Exit Code

The exit code is usually the status code returned by the program to the operating system at the end of execution, indicating whether the program ran successfully. Usually, a return value of 0 means the program exited normally, and a non-zero value means the program exited due to an error, which is convenient for subsequent status judgment in scripts (such as WDL, snakemake, etc.).

**SDAS exit code definition is as follows:**

* Normal exit: 0
* Core algorithm main function error: 1
* Command line parameter error: 2
* Input file format or content error: 3
* Output file error: 4
