diff --git a/export_logs.module b/export_logs.module
index 436d3d3f6..ebf749a9c 100644
--- a/export_logs.module
+++ b/export_logs.module
@@ -103,7 +103,8 @@ function export_logs_page_details() {
   else {
     $how_many = 100;
   }
-  $file_name = 'export_logs_' . date('Y_m_d#h_i_s') . '.txt';
+  $format = $_REQUEST['format'] == 'csv' ? 'csv' : 'txt';
+  $file_name = 'export_logs_' . date('Y_m_d#h_i_s') . '.' . $format;
   $export_logs_dir = export_logs_realpath() . '/export_logs';
   if (!is_dir($export_logs_dir)) {
       mkdir($export_logs_dir, 0755, true);
@@ -115,6 +116,7 @@ function export_logs_page_details() {
                 'type',
                 'message',
                 'variables',
+                'severity',
                 'location',
                 'referer',
                 'hostname',
@@ -125,7 +127,13 @@ function export_logs_page_details() {
     ->execute()
     ->fetchAll();
   $output = '';
+  $severity_levels = watchdog_severity_levels();
   if (count($records) > 0) {
+    $write_file = fopen($export_logs_dir . '/' . $file_name, "w");
+    if ($format == 'csv') {
+      $header = array(t('Time'), t('Message'), t('Severity'), t('Location'), t('Referrer'), t('Hostname'), t('Type'));
+      fputcsv($write_file, $header);
+    }
     foreach ($records as $log) {
       $location = $log->location;
       $referer = $log->referer;
@@ -142,14 +150,22 @@ function export_logs_page_details() {
       }
       $message = html_entity_decode($message);
       $message = str_replace('&#039;', "'", $message);
-      $output .= "[" . $time . "] : " . wordwrap($message, 100, "\r\n", TRUE) . "\r\n";
-      $output .= t('Location =') . $location . "\r\n";
-      $output .= t('Referer =') . $referer . "\r\n";
-      $output .= t('Host name =') . $hostname . "\r\n";
-      $output .= t('Type =') . $type . "\r\n\r\n";
+      $severity = $severity_levels[$log->severity];
+
+      if ($format == 'txt') {
+        $output = "[" . $time . "] : " . wordwrap($message, 100, "\r\n", TRUE) . "\r\n";
+        $output .= t('Severity =') . $severity. "\r\n";
+        $output .= t('Location =') . $location . "\r\n";
+        $output .= t('Referrer =') . $referer . "\r\n";
+        $output .= t('Hostname =') . $hostname . "\r\n";
+        $output .= t('Type =') . $type . "\r\n\r\n";
+        echo fwrite($write_file, $output);
+      }
+      else {
+        $row = array($time, $message, $severity, $location, $referer, $hostname, $type);
+        fputcsv($write_file, $row);
+      }
     }
-    $write_file = fopen($export_logs_dir . '/' . $file_name, "w");
-    echo fwrite($write_file, $output);
     fclose($write_file);
   }
   $file_path = $export_logs_dir . '/' . $file_name;
@@ -157,8 +173,13 @@ function export_logs_page_details() {
   header('Content-Description: File Transfer');
   header('Content-Length: ' . filesize($file_path) . ';');
   header('Content-Disposition: attachment; filename=' . $file_name);
-  header('Content-Type: application/octet-stream; ');
-  header('Content-Transfer-Encoding: binary');
+  if ($format == 'txt') {
+    header('Content-Type: application/octet-stream; ');
+    header('Content-Transfer-Encoding: binary');
+  }
+  else {
+    header("Content-Type: text/csv");
+  }
   readfile($file_path);
 }
 
@@ -183,8 +204,10 @@ function export_logs_page_alter(&$page) {
       '#collapsed' => TRUE,
       '#title' => t('Export')
     );
-    $list[] = l(t('Export 100 items'), 'explog');
-    $list[] = l(t('Export 5000 items'), 'explog', array('query' => array('fetch' => 5000)));
+    $list[] = l(t('Export 100 items as text'), 'explog');
+    $list[] = l(t('Export 5000 items as text'), 'explog', array('query' => array('fetch' => 5000)));
+    $list[] = l(t('Export 100 items as CSV'), 'explog', array('query' => array('format' => 'csv')));
+    $list[] = l(t('Export 5000 items as CSV'), 'explog', array('query' => array('format' => 'csv', 'fetch' => 5000)));
     $build['export']['list'] = array(
       '#theme' => 'item_list',
       '#items' => $list,
