如何使用SQL Server Java语言扩展进行日志记录?
我有一个Java程序,由SQL Server使用执行。Java程序使用logback将输出记录到文件中。以下是我的logback.xml配置:如何使用SQL Server Java语言扩展进行日志记录?,java,sql-server,logging,sql-server-2019,Java,Sql Server,Logging,Sql Server 2019,我有一个Java程序,由SQL Server使用执行。Java程序使用logback将输出记录到文件中。以下是我的logback.xml配置: <configuration> <property name="USER_HOME" value="/var/data/" /> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>${USER_HO
<configuration>
<property name="USER_HOME" value="/var/data/" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${USER_HOME}/myApp.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{36} [%thread] - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
</root>
</configuration>
${USER_HOME}/myApp.log
%d{yyyy-MM-dd HH:MM:ss.SSS}%-5级%logger{36}[%thread]-%msg%n
下面是类中的典型日志设置和语句:
@Slf4j // using lombok
public class MyApp extends AbstractSqlServerExtensionExecutor {
public MyApp() {
executorExtensionVersion = SQLSERVER_JAVA_LANG_EXTENSION_V1;
executorInputDatasetClassName = PrimitiveDataset.class.getName();
executorOutputDatasetClassName = PrimitiveDataset.class.getName();
}
public PrimitiveDataset execute(PrimitiveDataset input,
LinkedHashMap<String, Object> params) {
log.error("hello world"); // work fine when called in a standalone app
@Slf4j//使用lombok
公共类MyApp扩展了AbstractSqlServerExtensionExecutor{
公共MyApp(){
executorExtensionVersion=SQLSERVER\u JAVA\u LANG\u EXTENSION\u V1;
ExecutionInputDataSetClassName=PrimitiveDataset.class.getName();
executorOutputDatasetClassName=PrimitiveDataset.class.getName();
}
公共PrimitiveDataset执行(PrimitiveDataset输入,
LinkedHashMap参数){
log.error(“hello world”);//在独立应用程序中调用时工作正常
在Windows计算机上作为独立应用程序(即java MyApp)运行程序时,日志记录工作正常。但是,当程序作为SQL Server语言扩展应用程序执行时,不会创建任何日志文件。我尝试将${USER_HOME}/MyApp.log
更改为MyApp.log
,但仍然找不到日志文件
是否有地方可以检查SQL Server日志,以了解为什么没有创建Java应用程序日志文件?当SQL Server语言扩展运行程序日志时,我如何获得该程序日志?我怀疑该程序可能会被阻止(沙盒)通过SQL Server写入文件系统。只需执行此测试,将日志文件位置更改为SQL Server服务运行帐户可以访问的文件夹,例如数据库数据文件文件夹,并查看是否创建了日志。感谢您的建议。我只是尝试在SSMS消息控制台上收到以下错误,即使在r将所有人的文件夹权限更改为
完全控制:ch.qos.logback.core.FileAppender[FILE]-openFile中的错误(/Program Files/Microsoft SQL Server/MSSQL15.MSSQLSERVER/MSSQL/DATA/myApp.log,true)调用失败。java.io.FileNotFoundException:\Program Files\Microsoft SQL Server\MSSQLS15.MSSQLSERVER\MSSQL\DATA\myApp.log(访问被拒绝)