Design pattern strategy

<?php
interface IFormater {
  public function format($message, $level);
}
 
class File_Xml implements IFormater {
  public function format($message, $level) {
    $date = date('Y-m-d H:i:s');
    $xml = '<message>'.PHP_EOL;
    $xml .= '  <date>'.$date.'</date>'.PHP_EOL;
    $xml .= '  <level>'.$level.'</level>'.PHP_EOL;
    $xml .= '  <desc>'.$message.'</desc>'.PHP_EOL;
    $xml .= '</message>'.PHP_EOL;
    return $xml;
  }
}
 
class File_Csv implements IFormater {
  public function format($message, $level) {
    $plain = date('Y-m-d H:i:s').';'.$level.';'.$message;
    return $plain.PHP_EOL;
  }
}
 
class Logger {
  private $_formater;
  private $_file;
 
  public function __construct(IFormater $formater, $file) {
    $this->_formater = $formater;
    $this->_file = $file;
  }
 
  public function write($message, $level = 'NOTICE') {
    $message = $this->_formater->format($message, $level);
    file_put_contents($this->_file, $message, FILE_APPEND | LOCK_EX);
  }
}
 
$logger = new Logger(new File_Csv(), '/tmp/log.csv');
$logger->write('this is an error test', 'ERROR');
$logger->write('this is a warning test', 'WARNING');
$logger->write('this is a notice test', 'NOTICE');