diff -urN BitcasaDiff-20140716/BitcasaDiff/BitcasaDiff.cpp BitcasaDiff-20140717/BitcasaDiff/BitcasaDiff.cpp
--- BitcasaDiff-20140716/BitcasaDiff/BitcasaDiff.cpp	2014-07-14 03:19:02.000000000 +0900
+++ BitcasaDiff-20140717/BitcasaDiff/BitcasaDiff.cpp	2014-07-16 12:05:34.000000000 +0900
@@ -61,6 +61,7 @@
 		_tprintf(_T("\t\t       cannot use '-' and ' ' for timefield separator.\n"));
 		_tprintf(_T("\n"));
 		_tprintf(_T("\t/v : verbose output\n"));
+		_tprintf(_T("\t/faillog : output log file for download failure\n"));
 		break;
 	case param::local:
 		_tprintf(_T("BitcasaDiff local [localtarget]\n"));
@@ -313,6 +314,11 @@
 				}
 				continue;
 			}
+			if (_tcsicmp(&argv[i][1], _T("faillog")) == 0){
+				param.faillog = true;
+				fprintf(stderr, " download failure log\n");
+				continue;
+			}
 			if (_tcsicmp(&argv[i][1], _T("hash")) == 0){
 				_TCHAR *str = (i + 1 < argc) ? argv[i + 1] : NULL;
 				i++;
diff -urN BitcasaDiff-20140716/BitcasaDiff/BitcasaDiff.h BitcasaDiff-20140717/BitcasaDiff/BitcasaDiff.h
--- BitcasaDiff-20140716/BitcasaDiff/BitcasaDiff.h	2014-04-24 05:38:48.000000000 +0900
+++ BitcasaDiff-20140717/BitcasaDiff/BitcasaDiff.h	2014-07-16 12:05:34.000000000 +0900
@@ -23,6 +23,7 @@
 	typedef struct {
 		modetype mode;
 		bool verbose;
+		bool faillog;
 		bool usedatefilter;
 		FILETIME startdate;
 		FILETIME enddate;
Binary files BitcasaDiff-20140716/BitcasaDiff/BitcasaDiff.rc and BitcasaDiff-20140717/BitcasaDiff/BitcasaDiff.rc differ
diff -urN BitcasaDiff-20140716/BitcasaDiff/listBitcasa.cpp BitcasaDiff-20140717/BitcasaDiff/listBitcasa.cpp
--- BitcasaDiff-20140716/BitcasaDiff/listBitcasa.cpp	2014-07-15 21:35:40.000000000 +0900
+++ BitcasaDiff-20140717/BitcasaDiff/listBitcasa.cpp	2014-07-16 12:05:56.000000000 +0900
@@ -351,6 +351,12 @@
 				std::wcerr << loopi << "/" << loopmax <<" hash check:" << it.name << std::endl;
 
 				it.hashstr = RemoteFileHash(API, it.id, it.size, param.hashtype);
+				if (param.faillog && it.hashstr.empty()){
+					std::wofstream logfail("fail_download.log", std::ios::app);
+					if (logfail){
+						logfail << it.display << std::endl;
+					}
+				}
 				//std::wcerr << hashinfo << std::endl;
 			}
 			ret.push_back(it.display + it.attribute + it.hashstr);
