teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

1回答

971閲覧

VBAから呼ぶDLLのログが出力されない

Shei

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2022/10/31 03:15

編集2022/11/02 06:49

0

0

前提

ACCESSのVBAから呼び出されるDLLをVB.netで作成しております。
具体的にはDLLでDB更新処理を実装し、動作確認は取れております。

実現したいこと

上記機能のログをNlogライブラリを用いて出力したいです。

発生している問題・エラーメッセージ

VBAから呼び出す場合のみログが出力されません。

該当のソースコード

VB.net

1Public Class FacadeClass 2 Dim log = LogManager.GetCurrentClassLogger 3 4 Public Function UpdateDB() As Integer 5 log.Info("Log message") 6 'DB更新処理 7 Return '結果返却 8 End Function 9End Class

NLog.config

1<?xml version="1.0" encoding="utf-8" ?> 2<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 autoReload="true" 5 throwExceptions="true" 6 throwConfigExceptions="true" 7 internalLogLevel="Off" internalLogFile="../logs/nlog_internal.log"> 8 9 <variable name="myvar" value="myvalue"/> 10 11 <targets> 12 <target 13 xsi:type="File" 14 name="file" 15 fileName="${basedir}/logs/${shortdate}.log" 16 layout="${longdate} ${uppercase:${level}} ${message}" /> 17 </targets> 18 <rules> 19 <logger name="*" minlevel="Trace" writeTo="file" /> 20 </rules> 21</nlog>

試したこと

対象のDLLをexeファイルから呼び出すとログは出力されます。
DLLファイルと同じフォルダに呼び出し元のACCESSを配置しても改善されないので権限周りの問題でもないように思います。

2022/11/02 15:48 追記
Nlogに限らず、そもそもファイル出力ができないようです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kikukiku

2022/11/02 07:08

感ですが、カレントディレクトリが想定した場所と違うところにあることはないでしょうか? それによりログは出力されているが、見つけられていないとか。
Shei

2022/11/02 07:23

コメントいただきありがとうございます! NLogのコンフィグから絶対パスで指定したのですが、その際も出力はされておりませんでした。 また、exeから呼び出した際は想定の箇所に出力されているため、想定外の場所に出ていて見つけられていないとは現状考えにくいかなとも思っています......。
guest

回答1

0

自己解決

クラスライブラリは外部のライブラリを参照するのはとても難しいとのことでした。
本件については自作のログクラスを定義して解決致しました。
コメント頂いたkikukikuさん、その他ご覧頂いた皆様ありがとうございました。
参考URL
https://m-kawanon.hatenadiary.org/entry/20110731/1312116123

投稿2022/11/16 07:21

Shei

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問