> まず1点目は SetApplicationLogFileNameとSetUseDateNameLogFileは併用できない仕様なのでしょうか。
はい、SetApplicationLogFileName が優先される形で、併用できない仕様です
SetApplicationLogFileName を使用する場合は、以下のようなコードで日付入りのファイル名を設定するようにしてください m(_ _)m
// 日付を取得
DATEDATA Date;
GetDateTime( &Date );
// 日付入りファイル名の設定
char String[128];
sprintf( String, "custom_name_log%d_%d_%d_%d_%d_%d.txt", Date.Year, Date.Mon, Date.Day, Date.Hour, Date.Min, Date.Sec );
SetApplicationLogFileName( String );
> 2点目ですが、これが本題でSetApplicationLogSaveDirectoryを指定した際に、
> ログファイルが以下のように化けてしまう現象を確認しています。
>
> すいません、半分程解決しました。
> 2点目もとい ログ関連の関数は最初のログが発生するよりも前に設定すれば、文字化けが起こらないことを確認しました。
ログファイルの文字コード形式が UTF-16LE なのですが、UTF-16LE はファイルの先頭に
UTF-16LE であることを示す 2バイト( 0xff 0xfe )が無いと UTF-16LE として正しく処理されないので、
途中で SetApplicationLogSaveDirectory で出力先を変更するとその 2バイトが
先頭に無いログファイルができてしまうため、文字化けしてしまうようです
近い内にそのようなファイル先頭の 2バイトが必要のない UTF-8 に変更しようと思います m(_ _;m
> (ちなみにSetApplicationLogFileNameも最初のログが発生する前でないと有効ではないようです。)
はい、SetApplicationLogFileName や SetUseDateNameLogFile はログファイル作成前でのみ有効な関数となっています